diff --git a/MarathonData.md b/MarathonData.md
index ecab614..9277a3d 100644
--- a/MarathonData.md
+++ b/MarathonData.md
@@ -2150,19 +2150,29 @@ If `DataVersion` is `DataM1`, then `ItemOpt` must be set by the client.
### Mission Flags ###
-| Name | Bit |
-| ---- | --- |
-| `Extermination`| `0` |
-| `Exploration` | `1` |
-| `Retrieval` | `2` |
-| `Repair` | `3` |
-| `Rescue` | `4` |
+| Name | Bit |
+| ---- | --- |
+| `Extermination` | `0` |
+| `Exploration` | `1` |
+| `Retrieval` | `2` |
+| `Repair` | `3` |
+| `Rescue` | `4` |
+| `M1Exploration` | `5` |
+| `M1Rescue` | `6` |
+| `M1Repair` | `7` |
-- `Extermination` means you must kill a certain percentage of monsters.
+- `Extermination` means you must kill all monsters on the map, with an error
+threshold of 8 alien enemies maximum.
- `Exploration` means you must explore marked polygons.
- `Retrieval` means you must grab marked items.
- `Repair` means you must flip marked switches.
-- `Rescue` means you must keep a certain percentage of BoBs alive.
+- `Rescue` means you must keep 50% of BoBs alive.
+- `M1Exploration` is the same as `Exploration` except you only need to look at
+each marked polygon, not actually enter them.
+- `M1Rescue` is the same as `Rescue`. Since this is an internal flag, all it
+actually does is change which monster class it checks.
+- `M1Repair` is the same as `Repair`, except it only requires that the last
+switch (by side index) be switched to succeed.
### Environment Flags ###
diff --git a/source/tycho/data/tycho.xml b/source/tycho/data/tycho.xml
index 5123030..0a0a75c 100644
--- a/source/tycho/data/tycho.xml
+++ b/source/tycho/data/tycho.xml
@@ -76,6 +76,853 @@ Author: Alison Sanderson
+
+
TrueFalse
@@ -330,6 +1177,14 @@ Author: Alison Sanderson
True
+
+
+ True
+ False
+ Show Map _Properties
+ True
+
+
diff --git a/source/tycho/main.rs b/source/tycho/main.rs
index 47e8951..efaea64 100644
--- a/source/tycho/main.rs
+++ b/source/tycho/main.rs
@@ -61,6 +61,11 @@ fn run_app(app: >k::Application)
win.connect_delete_event(hide_on_delete);
btn.connect_activate(move |_| win.show_all());
+ let btn: gtk::MenuItem = get_obj(b, "btn-show-map-prop");
+ let win: gtk::Window = get_obj(b, "win-map-prop");
+ win.connect_delete_event(hide_on_delete);
+ btn.connect_activate(move |_| win.show_all());
+
mk_draw_area(b);
let win: gtk::AboutDialog = get_obj(b, "win-about");