diff --git a/Build/Configurations/Boom_Doom2Doom.cfg b/Build/Configurations/Boom_Doom2Doom.cfg
index 82e282a7d071e36d94080136dac04c0814294ba3..dcb8f3c9c34d984a22c52212b6cb5a8d46835526 100644
--- a/Build/Configurations/Boom_Doom2Doom.cfg
+++ b/Build/Configurations/Boom_Doom2Doom.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Boom_DoomDoom.cfg b/Build/Configurations/Boom_DoomDoom.cfg
index 0d5be2f768c2589d5dfbd7db1c2134e1ef968388..90bd321bb851045226218f8adba0e8e96a48e564 100644
--- a/Build/Configurations/Boom_DoomDoom.cfg
+++ b/Build/Configurations/Boom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-}
-
 //Default map name
 defaultlumpname = "E1M1";
 
diff --git a/Build/Configurations/Doom_Doom2Doom.cfg b/Build/Configurations/Doom_Doom2Doom.cfg
index cbcfab3ad537f275279aa64235a31dfc88e0e3b8..88d8cc5e84625528bc885850b16d3a34879333cb 100644
--- a/Build/Configurations/Doom_Doom2Doom.cfg
+++ b/Build/Configurations/Doom_Doom2Doom.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Doom_DoomDoom.cfg b/Build/Configurations/Doom_DoomDoom.cfg
index 92d17633903ad616ece61a77718b540a3c028d42..cbd3361154bfaf87ed491fb6dba52e0b74a1786c 100644
--- a/Build/Configurations/Doom_DoomDoom.cfg
+++ b/Build/Configurations/Doom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-}
-
 //Default map name
 defaultlumpname = "E1M1";
 
diff --git a/Build/Configurations/GZDoom_DoomDoom.cfg b/Build/Configurations/GZDoom_DoomDoom.cfg
index 031afffd332e3a26b626653917dd8895a01874c4..fe53d159f29d3ece04229fc088b621f7232cab19 100644
--- a/Build/Configurations/GZDoom_DoomDoom.cfg
+++ b/Build/Configurations/GZDoom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_DoomHexen.cfg b/Build/Configurations/GZDoom_DoomHexen.cfg
index 35eeac80f2609a5866933274261b6e14f9b8ddff..c37e11c1474cca5d211591b03404a952028dfea2 100644
--- a/Build/Configurations/GZDoom_DoomHexen.cfg
+++ b/Build/Configurations/GZDoom_DoomHexen.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_DoomUDMF.cfg b/Build/Configurations/GZDoom_DoomUDMF.cfg
index f4fc326348b5fa24d2cefd728eefb4cdaaf45d7d..1953e0f4a063f88a469edd817bab46e11f17bc46 100644
--- a/Build/Configurations/GZDoom_DoomUDMF.cfg
+++ b/Build/Configurations/GZDoom_DoomUDMF.cfg
@@ -39,15 +39,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticDoom.cfg b/Build/Configurations/GZDoom_HereticDoom.cfg
index 5449ccc1f0d3043c13b93aea25e7205fd21668dd..55be9d6cae98a36f8be6fb6929a15a054e9ebce1 100644
--- a/Build/Configurations/GZDoom_HereticDoom.cfg
+++ b/Build/Configurations/GZDoom_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticHexen.cfg b/Build/Configurations/GZDoom_HereticHexen.cfg
index 70f7cccae1ea3f5280e01159108ac55f738a20bf..cbeb76a5a848a079b70062d5ffe44f9a3e05f9ac 100644
--- a/Build/Configurations/GZDoom_HereticHexen.cfg
+++ b/Build/Configurations/GZDoom_HereticHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HereticUDMF.cfg b/Build/Configurations/GZDoom_HereticUDMF.cfg
index fd9b6f452fc48b7ce421fa5cbc17261a50e0928c..75fd34a5a17ee307d91eb4564af721c934150efc 100644
--- a/Build/Configurations/GZDoom_HereticUDMF.cfg
+++ b/Build/Configurations/GZDoom_HereticUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HexenHexen.cfg b/Build/Configurations/GZDoom_HexenHexen.cfg
index c9c76d9811da84b51aeddee9a035b1a3655e9730..df562f5b86d72e12b935ccd2ff1b38c8593c8150 100644
--- a/Build/Configurations/GZDoom_HexenHexen.cfg
+++ b/Build/Configurations/GZDoom_HexenHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_HexenUDMF.cfg b/Build/Configurations/GZDoom_HexenUDMF.cfg
index 3a0056d240c612909fff2a8578557e680d2e53ca..1a58d52361558a8c48b326c1ab2df90be217aabf 100644
--- a/Build/Configurations/GZDoom_HexenUDMF.cfg
+++ b/Build/Configurations/GZDoom_HexenUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeDoom.cfg b/Build/Configurations/GZDoom_StrifeDoom.cfg
index 9b6d311b3e0ec0d84d2f5736773214734b5e094e..9965ae7a2e3920785bbbfa1548b7cef2131beeb1 100644
--- a/Build/Configurations/GZDoom_StrifeDoom.cfg
+++ b/Build/Configurations/GZDoom_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeHexen.cfg b/Build/Configurations/GZDoom_StrifeHexen.cfg
index 41d47b7192c04d3e93f246d86acc81ae104c82eb..544748b07265f48026567120de0ed50004e67eb2 100644
--- a/Build/Configurations/GZDoom_StrifeHexen.cfg
+++ b/Build/Configurations/GZDoom_StrifeHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/GZDoom_StrifeUDMF.cfg b/Build/Configurations/GZDoom_StrifeUDMF.cfg
index 10732166c1d3dcfe0dcea4add585016e1f2822e0..073b6d6da7fa287b8e0248d36b331350bb4e1144 100644
--- a/Build/Configurations/GZDoom_StrifeUDMF.cfg
+++ b/Build/Configurations/GZDoom_StrifeUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Includes/Doom_misc.cfg b/Build/Configurations/Includes/Doom_misc.cfg
index 844a4a482ad7fe800096f820c744fadafac08ff7..c614f792ce9b81a0145cf77454d1c7b1085df7a1 100644
--- a/Build/Configurations/Includes/Doom_misc.cfg
+++ b/Build/Configurations/Includes/Doom_misc.cfg
@@ -508,78 +508,4 @@ enums
 		0 = "Add";
 		1 = "Set";
 	}
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_format
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	SEGS = 3;
-	SSECTORS = 3;
-	NODES = 3;
-	SECTORS = 3;
-	REJECT = 3;
-	BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 2;
-}
-
-gamedetect_exmx
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
-
-gamedetect_mapxx
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1;
-	MAP41 = 1;
-}
-
-gamedetect_either
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
 }
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Heretic_misc.cfg b/Build/Configurations/Includes/Heretic_misc.cfg
index f975742467b8964ec4d2fca9549885b103574eba..0a687afeed1eb176a3d445619497de884359d376 100644
--- a/Build/Configurations/Includes/Heretic_misc.cfg
+++ b/Build/Configurations/Includes/Heretic_misc.cfg
@@ -1,7 +1,4 @@
-
 // Basic Heretic stuff.
-
-
 skills
 {
 	1 = "Thou needeth a wet-nurse";
@@ -9,29 +6,4 @@ skills
 	3 = "Bringest them oneth";
 	4 = "Thou art a smite-meister";
 	5 = "Black plague possesses thee";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 3;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 1; E5M2 = 1; E5M3 = 1; E5M4 = 1; E5M5 = 1; E5M6 = 1; E5M7 = 1; E5M8 = 1; E5M9 = 1;
-	E6M1 = 1; E6M2 = 1; E6M3 = 1;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Hexen_misc.cfg b/Build/Configurations/Includes/Hexen_misc.cfg
index a72cdf5cc40574fd65ae93e8d7bd09ea2729f5b6..a64d7de70a9c985f9ed154c0a256638d84eb854d 100644
--- a/Build/Configurations/Includes/Hexen_misc.cfg
+++ b/Build/Configurations/Includes/Hexen_misc.cfg
@@ -46,26 +46,32 @@ defaultthingflags
 // How thing flags should be compared (for the stuck thing error check)
 thingflagscompare
 {
-	skills {
+	skills
+	{
 		1;
 		2;
 		4;
 	}
 
-	classes {
+	classes
+	{
 		32;
 		64;
 		128;
 	}
 
-	gamemodes {
-		256 {
+	gamemodes
+	{
+		256
+		{
 			requiredgroup = "skills";
 		}
-		512 {
+		512
+		{
 			requiredgroup = "skills";
 		}
-		1024 {
+		1024
+		{
 			ignoredgroup = "skills";
 		}
 	}
@@ -218,45 +224,4 @@ enums
 	{
 		0 = "None";
 	}
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-gamedetect_format
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	SEGS = 3;
-	SSECTORS = 3;
-	NODES = 3;
-	SECTORS = 3;
-	REJECT = 3;
-	BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 3;
-}
-
-gamedetect
-{
-	EXTENDED = 2;
-	E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 1; MAP36 = 1; MAP37 = 1; MAP38 = 1; MAP39 = 1; MAP40 = 1;
-	MAP41 = 1;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/Strife_misc.cfg b/Build/Configurations/Includes/Strife_misc.cfg
index 57e7f17f51703cb24a819f151bc8076964aace2c..669ef78fc8a338195d1bf2076e12bb2008f02234 100644
--- a/Build/Configurations/Includes/Strife_misc.cfg
+++ b/Build/Configurations/Includes/Strife_misc.cfg
@@ -144,29 +144,4 @@ thingsfilters
 		
 	}
 	
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-	E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 1; MAP13 = 1; MAP14 = 1; MAP15 = 1; MAP16 = 1; MAP17 = 1; MAP18 = 1; MAP19 = 1; MAP20 = 1;
-	MAP21 = 1; MAP22 = 1; MAP23 = 1; MAP24 = 1; MAP25 = 1; MAP26 = 1; MAP27 = 1; MAP28 = 1; MAP29 = 1; MAP30 = 1;
-	MAP31 = 1; MAP32 = 1; MAP33 = 1; MAP34 = 1; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/UDMF_misc.cfg b/Build/Configurations/Includes/UDMF_misc.cfg
index 781eaadc77c135f0a6e88c5347819bdb338d7e73..fe8d3ae8c42d4bce870bfb00d870c85300028749 100644
--- a/Build/Configurations/Includes/UDMF_misc.cfg
+++ b/Build/Configurations/Includes/UDMF_misc.cfg
@@ -197,157 +197,4 @@ udmfmaplumpnames_end
 		nodebuild = false;
 		allowempty = true;
 	}
-}
-
-
-// Default thing filters
-// (these are not required, just useful for new users)
-/*thingsfilters
-{
-	
-	filter0
-	{
-		name = "Keys only";
-		category = "keys";
-		type = -1;
-	}
-	
-	
-	filter2
-	{
-		name = "Skill 1";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill1 = true;
-		}
-		
-	}
-	
-	
-	filter3
-	{
-		name = "Skill 2";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill2 = true;
-		}
-		
-	}
-	
-	
-	filter4
-	{
-		name = "Skill 3";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill3 = true;
-		}
-		
-	}
-	
-	
-	filter5
-	{
-		name = "Skill 4";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill4 = true;
-		}
-		
-	}
-	
-	
-	filter6
-	{
-		name = "Skill 5";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill5 = true;
-		}
-		
-	}
-	
-	
-	filter7
-	{
-		name = "Skill 6";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill6 = true;
-		}
-		
-	}
-	
-	
-	filter8
-	{
-		name = "Skill 7";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill7 = true;
-		}
-		
-	}
-	
-	
-	filter9
-	{
-		name = "Skill 8";
-		category = "";
-		type = -1;
-		
-		fields
-		{
-			skill8 = true;
-		}
-		
-	}
-	
-} */
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_format
-{
-	THINGS = 2;
-	LINEDEFS = 2;
-	SIDEDEFS = 2;
-	VERTEXES = 2;
-	//SEGS = 2;
-	//SSECTORS = 2;
-	//NODES = 2;
-	SECTORS = 2;
-	//REJECT = 2;
-	TEXTMAP = 3;
-	ENDMAP = 3;
-	//BEHAVIOR = 2;
-}
-
+}
\ No newline at end of file
diff --git a/Build/Configurations/Includes/ZDoom_misc.cfg b/Build/Configurations/Includes/ZDoom_misc.cfg
index 9d329e547ab9af901da7fc173ee67abfbad8d591..f478bc1263c895c6271816e8bdc91cebc3650f14 100644
--- a/Build/Configurations/Includes/ZDoom_misc.cfg
+++ b/Build/Configurations/Includes/ZDoom_misc.cfg
@@ -1876,68 +1876,6 @@ thingsfilters_udmf
 	
 }
 
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-// ZDoom is less strict than vanilla and allows certain lumps to be missing.
-gamedetect_doom
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	//SEGS = 3;
-	SSECTORS = 3;
-	//NODES = 3;
-	//SECTORS = 3;
-	//REJECT = 3;
-	//BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 2;
-}
-
-gamedetect_hexen
-{
-	TEXTMAP = 2;
-	THINGS = 3;
-	LINEDEFS = 3;
-	SIDEDEFS = 3;
-	VERTEXES = 3;
-	//SEGS = 3;
-	SSECTORS = 3;
-	//NODES = 3;
-	//SECTORS = 3;
-	//REJECT = 3;
-	//BLOCKMAP = 3;
-	ENDMAP = 2;
-	BEHAVIOR = 3;
-}
-
-gamedetect_udmf
-{
-	TEXTMAP = 3;
-	THINGS = 2;
-	LINEDEFS = 2;
-	SIDEDEFS = 2;
-	VERTEXES = 2;
-	//SEGS = 2;
-	//SSECTORS = 2;
-	//NODES = 2;
-	SECTORS = 2;
-	//REJECT = 2;
-	//BLOCKMAP = 2;
-	ENDMAP = 3;
-	//BEHAVIOR = 2;
-}
-
-
 // Special linedefs
 speciallinedefs_doomhexen
 {
diff --git a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg
index ae43081ea5e39b1f09c7d70c06404cab08c284e2..0ef5bb76a03a2826c651c46fd06e97b44120fc4b 100644
--- a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg
index edfa2f36960326827d4a5f1b145ab39453b578be..d756a505c8333ec726401931ae3de5c62f5e83e4 100644
--- a/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/GZDoom_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg b/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg
index 51314fc606438187974d6eb9568d34719ae8843a..065bd349748503fbee00b9fce194536f22d20fe6 100644
--- a/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Includes/Action2_misc.cfg	
@@ -10,29 +10,4 @@ skills
 	2 = "Petty Thug";
 	3 = "Hot Shit";
 	4 = "Badass Mother Fucker";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg
index f61340216e9122f7697645248fc868f5551d0fe9..0a06d973f2672677211ec4f8570dd208d0ad21e1 100644
--- a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg
index a8caa6027479f8887c73714fb58a241b4715fa5a..09779b65db9e56543faa506ff6f39182d2c6164f 100644
--- a/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/ZDoom_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg
index 041a64a16caad706efef77b25ad0f3078aa26203..1e9d6a8cf71512ca11d13769b38dffef839defde 100644
--- a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg
index a9554728b601531762e2428c0956bcb8e4a46320..bf1415cbf982bab9b847c675ddedfa28bdae5afd 100644
--- a/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg	
+++ b/Build/Configurations/Other Games/Action Doom/Zandronum_Action2UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Action2_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg
index f4a207820faac60dd5760d36a6dd15e395f11577..40c869a99f872a1f0379c5116e4c1ddfd4b9b5c1 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg
index 49544614e6ae6964372a77ca1d80f8622211fdb0..5ae1a53d0d84d388937ad3300ca589e5b1bc386d 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/GZDoom_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg
index b8d679685b58d84a6fc9e1c41aa1ff8b56655687..c523e36a78e03a0aa180d1ecbb3cd41bb24102e9 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg
index 43e37545008ea4a12afcebdd5b47f6c61526ac79..4417a9718b11d9dbb4809082597c407d110e55ae 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/ZDoom_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg
index de9d4e82135024feb15849927d0f666c5983cc15..db9ea61d27a051e3e0afa001e6e11033c7e3d19f 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3Hexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg
index ecbdca7abeab453b7f634bdfcf7abd76c51e07ed..9222c270993f50b196a7e50779ccb6f6f75a516a 100644
--- a/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest 3/Zandronum_Chex3UDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg
index fc4f9a2489450b255086597e1ba8cb50a2ce2728..f16e9d11989f186230c087c882e07812751af0b3 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg
index c6ca12534936753527c155b7342af9f87009d739..dade6dc2a2cbcf4362f5bb9931e37fca29cc412f 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg
index 2b944fec12bf2432534ea49064a9f7e590dc9fdd..3abf2e8479e3a86bd205f9fc0158f607b350a3c1 100644
--- a/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/GZDoom_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg b/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg
index b4776d6b336be8f7a01a99c98a5a4b94818a8ef5..0b286c083c764b7fc948c9c27cd274c5abec5fe8 100644
--- a/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Includes/Chex_misc.cfg	
@@ -11,54 +11,4 @@ skills
 	3 = "Gobs of goo";
 	4 = "Extreme ooze";
 	5 = "Super slimey!";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_chex1
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 1; E1M7 = 1; E1M8 = 1; E1M9 = 1;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 1; E2M7 = 1; E2M8 = 1; E2M9 = 1;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 1; E3M7 = 1; E3M8 = 1; E3M9 = 1;
-	E4M1 = 1; E4M2 = 1; E4M3 = 1; E4M4 = 1; E4M5 = 1; E4M6 = 1; E4M7 = 1; E4M8 = 1; E4M9 = 1;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect_chex3
-{
-	EXTENDED = 2;
-	E1M1 = 1; E1M2 = 1; E1M3 = 1; E1M4 = 1; E1M5 = 1; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 1; E2M2 = 1; E2M3 = 1; E2M4 = 1; E2M5 = 1; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 1; E3M2 = 1; E3M3 = 1; E3M4 = 1; E3M5 = 1; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 2; MAP02 = 2; MAP03 = 2; MAP04 = 2; MAP05 = 2; MAP06 = 2; MAP07 = 2; MAP08 = 2; MAP09 = 2; MAP10 = 2;
-	MAP11 = 2; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg
index 21ab1b6956767a0938bc50adae2395ccc93f2e11..218364ce45ab420732ffc03482ce7cb9e4f59bc9 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg
index 6aba6c1a6f9b762abdd54bf9b543719cdb10c7dc..464c953139b588cbcae6b444fb24d3e9a25fe7e3 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg
index 34dc9c554f0a70fefcb1e7ba6592fd1a127ba6da..ad33e59fddcde311a6e3216ef8cc7657d58c8246 100644
--- a/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/ZDoom_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg
index b6f8f61ddb802e539a98544b5b63cb1a4b509205..401a90f2f6aa91503e1982c13eb4377d8cef41b0 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg
index 0af20442fa03eed79fa9787b1f7b0471785a8cf3..ddce4f9f560a9c103f43b2fc3c24d77fdbbf4f59 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg
index a67b5b47ccfc3969405f8455aef88ef99d97a530..3866422a606aa4f0f73ddefb8e059a7fe7f8f3a9 100644
--- a/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg	
+++ b/Build/Configurations/Other Games/Chex Quest/Zandronum_ChexUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg
index c316fef9774b8878f40d9a5af4dd5cd0101eb84d..d16e7cd65295e2e6ae805e926faf66318791bcd7 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg
index 15654be18590b250f4e7914125d8d1e610bafc11..7beb6619c530f7026ccc0a0cb25716feada98a94 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg
index 57628d4c6cfee1fefaccb7442faabe8721fec9e5..ba28bb183c84eb977adc892c3a1c1aac29881f52 100644
--- a/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/GZDoom_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg b/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg
index 3f717058ae0c629f908eb9b3566df9c30fb00d76..c0a563f605bb63b74da84c557693853c876e0c7a 100644
--- a/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Includes/Harmony_misc.cfg	
@@ -11,29 +11,4 @@ skills
 	3 = "Medium";
 	4 = "Hard";
 	5 = "Very hard";
-}
-
-/*
-GAME DETECT PATTERN
-Used to guess the game for which a WAD file is made.
-
-1 = One of these lumps must exist
-2 = None of these lumps must exist
-3 = All of these lumps must exist
-*/
-
-gamedetect
-{
-	EXTENDED = 2;
-    E1M1 = 2; E1M2 = 2; E1M3 = 2; E1M4 = 2; E1M5 = 2; E1M6 = 2; E1M7 = 2; E1M8 = 2; E1M9 = 2;
-	E2M1 = 2; E2M2 = 2; E2M3 = 2; E2M4 = 2; E2M5 = 2; E2M6 = 2; E2M7 = 2; E2M8 = 2; E2M9 = 2;
-	E3M1 = 2; E3M2 = 2; E3M3 = 2; E3M4 = 2; E3M5 = 2; E3M6 = 2; E3M7 = 2; E3M8 = 2; E3M9 = 2;
-	E4M1 = 2; E4M2 = 2; E4M3 = 2; E4M4 = 2; E4M5 = 2; E4M6 = 2; E4M7 = 2; E4M8 = 2; E4M9 = 2;
-	E5M1 = 2; E5M2 = 2; E5M3 = 2; E5M4 = 2; E5M5 = 2; E5M6 = 2; E5M7 = 2; E5M8 = 2; E5M9 = 2;
-	E6M1 = 2; E6M2 = 2; E6M3 = 2;
-	MAP01 = 1; MAP02 = 1; MAP03 = 1; MAP04 = 1; MAP05 = 1; MAP06 = 1; MAP07 = 1; MAP08 = 1; MAP09 = 1; MAP10 = 1;
-	MAP11 = 1; MAP12 = 2; MAP13 = 2; MAP14 = 2; MAP15 = 2; MAP16 = 2; MAP17 = 2; MAP18 = 2; MAP19 = 2; MAP20 = 2;
-	MAP21 = 2; MAP22 = 2; MAP23 = 2; MAP24 = 2; MAP25 = 2; MAP26 = 2; MAP27 = 2; MAP28 = 2; MAP29 = 2; MAP30 = 2;
-	MAP31 = 2; MAP32 = 2; MAP33 = 2; MAP34 = 2; MAP35 = 2; MAP36 = 2; MAP37 = 2; MAP38 = 2; MAP39 = 2; MAP40 = 2;
-	MAP41 = 2;
-}
+}
\ No newline at end of file
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg
index 74bcc9373dcf069a66a0e703142342a42b8909d0..48498425df2eb5dbbbd51f3adb8b04bab6e1c99c 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg
index c8dcdf7f93ad7ee72650e3a8006e8155a1632f91..1ac58704842003e934ce2d1ddcd9baf99af61776 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg
index f156d583b3277397733a4485667d1c81bbef18d9..aaa47e86132e634f8dda1ce2f63dc739de5535a0 100644
--- a/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/ZDoom_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg
index 99a0c495bab080f2b667e641acf2ab3e96860a08..fee21171cb504bd420c48cfebbb24e0d6eb990c7 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyDoom.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg
index 3abd60e9a15a2ccd0980aba9d2430b25692c89c3..bc471e69b8af6e4db8005ded30c253be1e65f949 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyHexen.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg
index 2f424ac96685f8444d4d861f710d995d07ebf049..9e8420698e935e882781cc405e01c2d378b4b96f 100644
--- a/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg	
+++ b/Build/Configurations/Other Games/Harmony/Zandronum_HarmonyUDMF.cfg	
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoomFamily_template.txt b/Build/Configurations/ZDoomFamily_template.txt
index aaed596adf42b04837b07d8e7cd9da2732e26015..5fdbd61c7901673c9da4f0a8a82b54116f7fbfa6 100644
--- a/Build/Configurations/ZDoomFamily_template.txt
+++ b/Build/Configurations/ZDoomFamily_template.txt
@@ -11,6 +11,9 @@ game = "ZDoom: Game (map format)";
 // This is the simplified game engine/sourceport name
 engine = "zdoom";
 
+// Should this configuration be initially available?
+enabledbydefault = true;
+
 // *******************************************************
 // *                                                     *
 // *   Note: all the elements that could be factorized   *
@@ -23,8 +26,17 @@ engine = "zdoom";
 // Settings common to all games and all map formats
 include("Includes\\ZDoom_common.cfg", "common");
 
-!!!!!!!!!! MAP FORMAT STUFF !!!!!!!!!!
-!Keep only the one that's appropriate!
+// Default thing filters
+// (these are not required, just useful for new users)
+thingsfilters
+{
+	// Keep only the one that's appropriate!
+	include("Includes\\Doom_misc.cfg", "thingsfilters"); // Thing filters for Doom/Hexen map formats
+	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf"); // Thing filters for UDMF map format
+}
+
+// ---------------- MAP FORMAT STUFF ----------------
+// Keep only the one that's appropriate!
 // Settings common to Doom map format
 include("Includes\\ZDoom_common.cfg", "mapformat_doom");
 
@@ -33,10 +45,12 @@ include("Includes\\ZDoom_common.cfg", "mapformat_hexen");
 
 // Settings common to text map format
 include("Includes\\ZDoom_common.cfg", "mapformat_udmf");
-!!!!!!!!!! MAP FORMAT STUFF !!!!!!!!!!
+// ---------------- MAP FORMAT STUFF ----------------
+
 
-!!!!!!!!!!!!! GAME STUFF !!!!!!!!!!!!!
-!Keep only the one that's appropriate!
+
+// ---------------- GAME STUFF ----------------
+//Keep only the one that's appropriate!
 // Settings common to Doom games
 include("Includes\\Game_Doom.cfg");
 
@@ -60,27 +74,9 @@ include("Includes\\Game_Harmony.cfg");
 
 // Settings common to Action Doom 2 games
 include("Includes\\Game_Action2.cfg");
-!!!!!!!!!!!!! GAME STUFF !!!!!!!!!!!!!
+// ---------------- GAME STUFF ----------------
+
 
-!!!!Keep only one of each category!!!!
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_exmx");
-	include("Includes\\Doom_misc.cfg", "gamedetect_mapxx");
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex1");
-	include("Includes\\Chex_misc.cfg", "gamedetect_chex3");
-	include("Includes\\Harmony_misc.cfg", "gamedetect");
-}
 
 // THING TYPES
 // Each engine has its own additional thing types
@@ -96,14 +92,17 @@ thingtypes
 	include("Includes\\Chex_things.cfg");
 	include("Includes\\Chex3_things.cfg");
 	include("Includes\\Harmony_things.cfg");
+	
 	// Additional ZDoom actors for that game
 	include("Includes\\ZDoom_things.cfg", "doom");
 	include("Includes\\ZDoom_things.cfg", "heretic");
 	include("Includes\\ZDoom_things.cfg", "hexen");
 	include("Includes\\ZDoom_things.cfg", "strife");
 	include("Includes\\ZDoom_things.cfg", "default");
+	
 	// Standard ZDoom actors
 	include("Includes\\ZDoom_things.cfg", "zdoom");
+	
 	// Additional actors from the engine
 	include("Includes\\GZDoom_things.cfg", "gzdoom");
 	include("Includes\\Zandronum_things.cfg", "doom");
@@ -120,8 +119,10 @@ enums
 {
 	// Basic game enums
 	include("Includes\\Doom_misc.cfg", "enums");
+	
 	// Standard ZDoom enums
 	include("Includes\\ZDoom_misc.cfg", "enums");
+	
 	// Additional ZDoom enums for that game
 	include("Includes\\ZDoom_misc.cfg", "enums_doom");
 	include("Includes\\ZDoom_misc.cfg", "enums_heretic");
@@ -130,6 +131,7 @@ enums
 	include("Includes\\ZDoom_misc.cfg", "enums_chex");
 	include("Includes\\ZDoom_misc.cfg", "enums_chex3");
 	include("Includes\\ZDoom_misc.cfg", "enums_harmony");
+	
 	// Additional enums from the engine
 	include("Includes\\Zandronum_misc.cfg", "enums_doom");
 	include("Includes\\Zandronum_misc.cfg", "enums_notdoom");
diff --git a/Build/Configurations/ZDoom_DoomDoom.cfg b/Build/Configurations/ZDoom_DoomDoom.cfg
index 3322131a9ce60620afe147bf87e8049997918c35..4f037ac3026847b05d4cc98dc13354a5d92a542a 100644
--- a/Build/Configurations/ZDoom_DoomDoom.cfg
+++ b/Build/Configurations/ZDoom_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_DoomHexen.cfg b/Build/Configurations/ZDoom_DoomHexen.cfg
index 5a52850e7ae11a92d4bd9cb1da0aaf6d9d957491..e2dc20ccc1c5fa00930ae0c72b58f1a490f1e182 100644
--- a/Build/Configurations/ZDoom_DoomHexen.cfg
+++ b/Build/Configurations/ZDoom_DoomHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_DoomUDMF.cfg b/Build/Configurations/ZDoom_DoomUDMF.cfg
index 404b35f40134aadcf79ff3eee79e469eb8811b32..0118aa81df8367b3b415617884a469cfee154ab9 100644
--- a/Build/Configurations/ZDoom_DoomUDMF.cfg
+++ b/Build/Configurations/ZDoom_DoomUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticDoom.cfg b/Build/Configurations/ZDoom_HereticDoom.cfg
index b47de6c7d62a5b5a62c6e38984aaf5821885b126..84d12b065906c5e7cddf5d92d49765fca46d846e 100644
--- a/Build/Configurations/ZDoom_HereticDoom.cfg
+++ b/Build/Configurations/ZDoom_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticHexen.cfg b/Build/Configurations/ZDoom_HereticHexen.cfg
index a3052bf38fc6dc53eede6af0ead85b74637833e3..ac931400e580fb81ab567d6fdc47d19d0eac4f6a 100644
--- a/Build/Configurations/ZDoom_HereticHexen.cfg
+++ b/Build/Configurations/ZDoom_HereticHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HereticUDMF.cfg b/Build/Configurations/ZDoom_HereticUDMF.cfg
index b9976c52e1b61be9122a2ad98d854c7e4b9ac971..53113db9801a9a0223e39c66efe859cda1426299 100644
--- a/Build/Configurations/ZDoom_HereticUDMF.cfg
+++ b/Build/Configurations/ZDoom_HereticUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HexenHexen.cfg b/Build/Configurations/ZDoom_HexenHexen.cfg
index 2fbc05756d0d254040336d61e8dffe95622af768..baaf351e33f231769e04dfc8c085bd95a8d6dcd3 100644
--- a/Build/Configurations/ZDoom_HexenHexen.cfg
+++ b/Build/Configurations/ZDoom_HexenHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_HexenUDMF.cfg b/Build/Configurations/ZDoom_HexenUDMF.cfg
index 8c23babf8acd4078b506f27cf1160678da9d071f..3430d0e1ddad30811024f65e8dd8d52846bf5df1 100644
--- a/Build/Configurations/ZDoom_HexenUDMF.cfg
+++ b/Build/Configurations/ZDoom_HexenUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeDoom.cfg b/Build/Configurations/ZDoom_StrifeDoom.cfg
index 6c66ebb48210488a9bf8fa4ca6d81b0b7831b8c7..324bdd9cafff20eb515da89fbd205f8351c4c969 100644
--- a/Build/Configurations/ZDoom_StrifeDoom.cfg
+++ b/Build/Configurations/ZDoom_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeHexen.cfg b/Build/Configurations/ZDoom_StrifeHexen.cfg
index ab3e3a8fa7d0aa17fc2f128bcbed18b45e8bd482..0bccfbaef45fa27ed13872eb7cd9162f4171f951 100644
--- a/Build/Configurations/ZDoom_StrifeHexen.cfg
+++ b/Build/Configurations/ZDoom_StrifeHexen.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/ZDoom_StrifeUDMF.cfg b/Build/Configurations/ZDoom_StrifeUDMF.cfg
index 60243ec9a04b8990152da790e25f344c3c23ef6b..5177172af4ac2afba700f619ee524ba1966c200d 100644
--- a/Build/Configurations/ZDoom_StrifeUDMF.cfg
+++ b/Build/Configurations/ZDoom_StrifeUDMF.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomDoom.cfg b/Build/Configurations/Zandronum_DoomDoom.cfg
index 1a3aac1e4ad1dd2d98d73f7dcd1061044e1dcfe2..096d12f0ba51fcf07ef0a7bd48ab90dac4044873 100644
--- a/Build/Configurations/Zandronum_DoomDoom.cfg
+++ b/Build/Configurations/Zandronum_DoomDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomHexen.cfg b/Build/Configurations/Zandronum_DoomHexen.cfg
index 28cb87564fab03f7ab5a6ad8ac962582cdfaef60..ed35c45589f38d161b8356307d15cc8bff0dbad5 100644
--- a/Build/Configurations/Zandronum_DoomHexen.cfg
+++ b/Build/Configurations/Zandronum_DoomHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_DoomUDMF.cfg b/Build/Configurations/Zandronum_DoomUDMF.cfg
index 06707bfbbeaa066ab076a6dca7f0fbb862b591aa..146d281a9d5be597e465903026e725955692d97e 100644
--- a/Build/Configurations/Zandronum_DoomUDMF.cfg
+++ b/Build/Configurations/Zandronum_DoomUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Doom_misc.cfg", "gamedetect_either");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticDoom.cfg b/Build/Configurations/Zandronum_HereticDoom.cfg
index 49ddfebc9963bb4f28296f40279542dd04e0fc88..0e423e860317fb7b9c823d533616b180da9daa28 100644
--- a/Build/Configurations/Zandronum_HereticDoom.cfg
+++ b/Build/Configurations/Zandronum_HereticDoom.cfg
@@ -36,15 +36,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticHexen.cfg b/Build/Configurations/Zandronum_HereticHexen.cfg
index 028dd531197c585633b3bc2a4ab6afc402a37f63..0856afac7f9d9ede7f900cc1bd759f78dea0e86d 100644
--- a/Build/Configurations/Zandronum_HereticHexen.cfg
+++ b/Build/Configurations/Zandronum_HereticHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Doom_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HereticUDMF.cfg b/Build/Configurations/Zandronum_HereticUDMF.cfg
index 4a28627ff506a263782c031137c790f1c4a32848..6f1182ecee69b707c5759c9d0378e5c973bd94d1 100644
--- a/Build/Configurations/Zandronum_HereticUDMF.cfg
+++ b/Build/Configurations/Zandronum_HereticUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Heretic_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HexenHexen.cfg b/Build/Configurations/Zandronum_HexenHexen.cfg
index 0ccc4c4cae1f4b7910dd2b0abd0da5f0fe6034fd..5029804018f21d08eb40386b6e1942cfed3287c5 100644
--- a/Build/Configurations/Zandronum_HexenHexen.cfg
+++ b/Build/Configurations/Zandronum_HexenHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Hexen_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_HexenUDMF.cfg b/Build/Configurations/Zandronum_HexenUDMF.cfg
index 8748dc4ca2a45619456910a4aacc7873744b9fd9..9299e0e0e0301a8a796cab031c2043d3de8e3b96 100644
--- a/Build/Configurations/Zandronum_HexenUDMF.cfg
+++ b/Build/Configurations/Zandronum_HexenUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Hexen_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeDoom.cfg b/Build/Configurations/Zandronum_StrifeDoom.cfg
index 31a0f2d43c9bb80eecae89a5c98b4a6e475f4e70..33833e1a2c4a1db8296364b6a7e0d84ce40c11be 100644
--- a/Build/Configurations/Zandronum_StrifeDoom.cfg
+++ b/Build/Configurations/Zandronum_StrifeDoom.cfg
@@ -37,15 +37,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_doom");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeHexen.cfg b/Build/Configurations/Zandronum_StrifeHexen.cfg
index f133d2ee01866054376a97e8df91c4397ef58699..eec486d103cc170d1b2d28d1271c99d6ceaca705 100644
--- a/Build/Configurations/Zandronum_StrifeHexen.cfg
+++ b/Build/Configurations/Zandronum_StrifeHexen.cfg
@@ -40,15 +40,6 @@ thingsfilters
 	include("Includes\\Strife_misc.cfg", "thingsfilters");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_hexen");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Build/Configurations/Zandronum_StrifeUDMF.cfg b/Build/Configurations/Zandronum_StrifeUDMF.cfg
index a82613717cdbd341530491631294a0cc73bcaeea..e98825abdd168c268ab9aee365655d50bfbc1363 100644
--- a/Build/Configurations/Zandronum_StrifeUDMF.cfg
+++ b/Build/Configurations/Zandronum_StrifeUDMF.cfg
@@ -45,15 +45,6 @@ thingsfilters
 	include("Includes\\ZDoom_misc.cfg", "thingsfilters_udmf");
 }
 
-// Depends on both game and map format
-gamedetect
-{
-	// Map format
-	include("Includes\\ZDoom_misc.cfg", "gamedetect_udmf");
-	// Game scheme
-	include("Includes\\Strife_misc.cfg", "gamedetect");
-}
-
 // THING TYPES
 // Each engine has its own additional thing types
 // Order should always be 1: Game; 2: ZDoom/game; 3: ZDoom/zdoom
diff --git a/Help/gc_formatsettings.html b/Help/gc_formatsettings.html
index f4668fde9be3a84d67b2d8d44a8f2a83ae78e1ed..0847b5feddfc0334f2f56cda0b24d31eb8c880b1 100644
--- a/Help/gc_formatsettings.html
+++ b/Help/gc_formatsettings.html
@@ -25,47 +25,25 @@
 			<li>For Hexen map format, use "HexenMapSetIO". This is a map format that uses numeric flags.
 			<li>For UDMF map format, use "UniversalMapSetIO". This is a map format that uses named flags.
 		</ul>
-		<br />
-		<b class="fat">gamedetect</b> (structure)<br />
-		This is used to determine if the Game Configuration is suitable for the opened WAD file. None of the settings in this structure have any impact on the actual editing, limitations or storage of the map, but only assist the user when opening WAD files that have not been opened with Doom Builder before (when no .dbs file is available). The setting names in this structure are the lump names that must be checked for. The value of these settings (integers) indicates which rule applies to the lump name for a positive check. Valid values are:
-		<ul>
-			<li><b>1</b> - At least one of these lumps must exist.
-			<li><b>2</b> - None of these lumps must exist.
-			<li><b>3</b> - All of these lumps must exist.
-		</ul>
-		<strong>Example:</strong><br />
-<pre>
-gamedetect
-{
-	TEXTMAP = 2;
-	ENDMAP = 2;
-	EXTENDED = 2;
-	BEHAVIOR = 3;
-	E1M1 = 2;
-	E1M2 = 2;
-	E1M3 = 2;
-	MAP01 = 1;
-	MAP02 = 1;
-	MAP03 = 1;
-}
-</pre>
-		<br />
 		<b class="fat">maplumpnames</b> (structure)<br />
 		This structure describes the lumps that make up the complete map, including scripts and nodes. It must also indicate what Doom Builder is supposed to do with these lumps and/or where the lumps come from. These lumps are normally written by the map format interface class, but some could be generated by the nodebuilder compiler or stored by Doom Builder directly. In this structure, there should be a structure for every map lump. The name of the structure should be the lump name, in uppercase. For the map header (which name differs) you can use the name <b>~MAP</b>. The following settings should be in the lump structure (unless the default value applies):<br />
 		<ul>
-			<li><b class="fat">required</b> (boolean).<br />
+			<li><b class="fat">required</b> (boolean)<br />
 				<b>True</b> to indicate that this lump is a required lump for the map. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">blindcopy</b> (boolean).<br />
+			<li><b class="fat">forbidden</b> (boolean) - <span class="red">GZDB only</span>.<br />
+				<b>True</b> to indicate that this lump must not present in the map's namespace. Default is <b>false</b>.<br />
+				<br />
+			<li><b class="fat">blindcopy</b> (boolean)<br />
 				Set this to <b>true</b> when Doom Builder should copy this lump along with the map without using it. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">nodebuild</b> (boolean).<br />
+			<li><b class="fat">nodebuild</b> (boolean)<br />
 				When set to <b>true</b>, this indicates that the nodebuilder compiler generates or modifies this lump. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">allowempty</b> (boolean).<br />
+			<li><b class="fat">allowempty</b> (boolean)<br />
 				Set to <b>true</b> to allow the nodebuilder to leave this lump empty. Default is <b>false</b>.<br />
 				<br />
-			<li><b class="fat">script</b> (string).<br />
+			<li><b class="fat">script</b> (string)<br />
 				When this is set, it indicates that this lump can be edited with the script editor. The contents of this lump will be loaded in the script editor automatically. Set the value to the .cfg filename (without path) of a Script Configuration to use.<br />
                 <br />
                 <li><b class="fat">scriptbuild</b> (boolean) - <span class="red">GZDB only</span>.<br />
diff --git a/Source/Core/Config/ProgramConfiguration.cs b/Source/Core/Config/ProgramConfiguration.cs
index 39e924d2658113f7e725749a99293a72a3d058b8..b2f4b248271c5533da3759c599cb905abe29766a 100644
--- a/Source/Core/Config/ProgramConfiguration.cs
+++ b/Source/Core/Config/ProgramConfiguration.cs
@@ -281,11 +281,11 @@ namespace CodeImp.DoomBuilder.Config
 				dockerswidth = cfg.ReadSetting("dockerswidth", 300);
 				pasteoptions.ReadConfiguration(cfg, "pasteoptions");
 				toolbarscript = cfg.ReadSetting("toolbarscript", true);
-				toolbarundo = cfg.ReadSetting("toolbarundo", false);
-				toolbarcopy = cfg.ReadSetting("toolbarcopy", false);
+				toolbarundo = cfg.ReadSetting("toolbarundo", true);
+				toolbarcopy = cfg.ReadSetting("toolbarcopy", true);
 				toolbarprefabs = cfg.ReadSetting("toolbarprefabs", true);
 				toolbarfilter = cfg.ReadSetting("toolbarfilter", true);
-				toolbarviewmodes = cfg.ReadSetting("toolbarviewmodes", false);
+				toolbarviewmodes = cfg.ReadSetting("toolbarviewmodes", true);
 				toolbargeometry = cfg.ReadSetting("toolbargeometry", true);
 				toolbartesting = cfg.ReadSetting("toolbartesting", true);
 				toolbarfile = cfg.ReadSetting("toolbarfile", true);
diff --git a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
index af6cb6afab000a0fd636c4b1eee3411078be2fb0..ed979845463b146057fa60cd96a6593627fb375c 100644
--- a/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
+++ b/Source/Core/GZBuilder/GZDoom/MapinfoParser.cs
@@ -105,6 +105,9 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
 						break;
 				}
 
+				// Track brace level
+				int bracelevel = 0;
+
 				//search for required keys
 				while (SkipWhitespace(true)) 
 				{
@@ -323,6 +326,22 @@ namespace CodeImp.DoomBuilder.GZBuilder.GZDoom
 					{
 						return ParseBlock(token, mapName);
 					}
+//child block
+					else if(token == "{")
+					{
+						// Skip inner properties
+						bracelevel++;
+						if(bracelevel > 1)
+						{
+							do
+							{
+								SkipWhitespace(true);
+								token = ReadToken();
+								if(token == "{") bracelevel++;
+								else if(token == "}") bracelevel--;
+							} while(!string.IsNullOrEmpty(token) && bracelevel > 1);
+						}
+					}
 				}
 			} 
 			else if(token == "#include")
diff --git a/Source/Core/Windows/MainForm.Designer.cs b/Source/Core/Windows/MainForm.Designer.cs
index a45ae37f1c15c3abbc8e8d5cea6a85a9336ad98e..f61f95d243970e5b20aa3b58a0f76fbb00803651 100644
--- a/Source/Core/Windows/MainForm.Designer.cs
+++ b/Source/Core/Windows/MainForm.Designer.cs
@@ -96,9 +96,8 @@ namespace CodeImp.DoomBuilder.Windows
 			this.itemviewfloors = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemviewceilings = new System.Windows.Forms.ToolStripMenuItem();
 			this.seperatorviewviews = new System.Windows.Forms.ToolStripSeparator();
-			this.menufullbrightness = new System.Windows.Forms.ToolStripMenuItem();
-			this.menutogglegrid = new System.Windows.Forms.ToolStripMenuItem();
-			this.menutoggledynamicgrid = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemfullbrightness = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemtogglegrid = new System.Windows.Forms.ToolStripMenuItem();
 			this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
 			this.menuzoom = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom800 = new System.Windows.Forms.ToolStripMenuItem();
@@ -109,10 +108,9 @@ namespace CodeImp.DoomBuilder.Windows
 			this.item2zoom25 = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom10 = new System.Windows.Forms.ToolStripMenuItem();
 			this.item2zoom5 = new System.Windows.Forms.ToolStripMenuItem();
-			this.menugotocoords = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemgotocoords = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemfittoscreen = new System.Windows.Forms.ToolStripMenuItem();
 			this.itemtoggleinfo = new System.Windows.Forms.ToolStripMenuItem();
-			this.itemtogglecomments = new System.Windows.Forms.ToolStripMenuItem();
 			this.seperatorviewzoom = new System.Windows.Forms.ToolStripSeparator();
 			this.itemscripteditor = new System.Windows.Forms.ToolStripMenuItem();
 			this.menumode = new System.Windows.Forms.ToolStripMenuItem();
@@ -174,6 +172,7 @@ namespace CodeImp.DoomBuilder.Windows
 			this.separatorfilters = new System.Windows.Forms.ToolStripSeparator();
 			this.buttonfullbrightness = new System.Windows.Forms.ToolStripButton();
 			this.buttontogglegrid = new System.Windows.Forms.ToolStripButton();
+			this.buttontoggledynamicgrid = new System.Windows.Forms.ToolStripButton();
 			this.separatorfullbrightness = new System.Windows.Forms.ToolStripSeparator();
 			this.buttonviewnormal = new System.Windows.Forms.ToolStripButton();
 			this.buttonviewbrightness = new System.Windows.Forms.ToolStripButton();
@@ -253,7 +252,8 @@ namespace CodeImp.DoomBuilder.Windows
 			this.dockerscollapser = new System.Windows.Forms.Timer(this.components);
 			this.flowLayoutPanel = new System.Windows.Forms.FlowLayoutPanel();
 			this.modecontrolsloolbar = new System.Windows.Forms.ToolStrip();
-			this.buttontoggledynamicgrid = new System.Windows.Forms.ToolStripButton();
+			this.itemtogglecomments = new System.Windows.Forms.ToolStripMenuItem();
+			this.itemdynamicgridsize = new System.Windows.Forms.ToolStripMenuItem();
 			toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
 			toolStripSeparator9 = new System.Windows.Forms.ToolStripSeparator();
 			toolStripSeparator12 = new System.Windows.Forms.ToolStripSeparator();
@@ -513,6 +513,7 @@ namespace CodeImp.DoomBuilder.Windows
             this.itempastespecial,
             this.seperatoreditcopypaste,
             this.itemsnaptogrid,
+            this.itemdynamicgridsize,
             this.itemautomerge,
             this.itemautoclearsidetextures,
             this.seperatoreditgeometry,
@@ -727,15 +728,14 @@ namespace CodeImp.DoomBuilder.Windows
             this.itemviewfloors,
             this.itemviewceilings,
             this.seperatorviewviews,
-            this.menufullbrightness,
-            this.menutogglegrid,
-            this.menutoggledynamicgrid,
+            this.itemfullbrightness,
+            this.itemtogglegrid,
+            this.itemtogglecomments,
             this.toolStripSeparator4,
             this.menuzoom,
-            this.menugotocoords,
+            this.itemgotocoords,
             this.itemfittoscreen,
             this.itemtoggleinfo,
-            this.itemtogglecomments,
             this.seperatorviewzoom,
             this.itemscripteditor});
 			this.menuview.Name = "menuview";
@@ -807,35 +807,29 @@ namespace CodeImp.DoomBuilder.Windows
 			this.seperatorviewviews.Name = "seperatorviewviews";
 			this.seperatorviewviews.Size = new System.Drawing.Size(212, 6);
 			// 
-			// menufullbrightness
-			// 
-			this.menufullbrightness.CheckOnClick = true;
-			this.menufullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
-			this.menufullbrightness.Name = "menufullbrightness";
-			this.menufullbrightness.Size = new System.Drawing.Size(215, 22);
-			this.menufullbrightness.Tag = "builder_togglebrightness";
-			this.menufullbrightness.Text = "Full Brightness";
-			this.menufullbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menutogglegrid
-			// 
-			this.menutogglegrid.CheckOnClick = true;
-			this.menutogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
-			this.menutogglegrid.Name = "menutogglegrid";
-			this.menutogglegrid.Size = new System.Drawing.Size(215, 22);
-			this.menutogglegrid.Tag = "builder_togglegrid";
-			this.menutogglegrid.Text = "&Render Grid";
-			this.menutogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
-			// menutoggledynamicgrid
-			// 
-			this.menutoggledynamicgrid.CheckOnClick = true;
-			this.menutoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
-			this.menutoggledynamicgrid.Name = "menutoggledynamicgrid";
-			this.menutoggledynamicgrid.Size = new System.Drawing.Size(215, 22);
-			this.menutoggledynamicgrid.Tag = "builder_toggledynamicgrid";
-			this.menutoggledynamicgrid.Text = "&Dynamic Grid Size";
-			this.menutoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// itemfullbrightness
+			// 
+			this.itemfullbrightness.Checked = true;
+			this.itemfullbrightness.CheckOnClick = true;
+			this.itemfullbrightness.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemfullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
+			this.itemfullbrightness.Name = "itemfullbrightness";
+			this.itemfullbrightness.Size = new System.Drawing.Size(215, 22);
+			this.itemfullbrightness.Tag = "builder_togglebrightness";
+			this.itemfullbrightness.Text = "Full Brightness";
+			this.itemfullbrightness.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
+			// itemtogglegrid
+			// 
+			this.itemtogglegrid.Checked = true;
+			this.itemtogglegrid.CheckOnClick = true;
+			this.itemtogglegrid.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemtogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
+			this.itemtogglegrid.Name = "itemtogglegrid";
+			this.itemtogglegrid.Size = new System.Drawing.Size(215, 22);
+			this.itemtogglegrid.Tag = "builder_togglegrid";
+			this.itemtogglegrid.Text = "&Render Grid";
+			this.itemtogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// toolStripSeparator4
 			// 
@@ -922,13 +916,13 @@ namespace CodeImp.DoomBuilder.Windows
 			this.item2zoom5.Text = "5%";
 			this.item2zoom5.Click += new System.EventHandler(this.itemzoomto_Click);
 			// 
-			// menugotocoords
+			// itemgotocoords
 			// 
-			this.menugotocoords.Name = "menugotocoords";
-			this.menugotocoords.Size = new System.Drawing.Size(215, 22);
-			this.menugotocoords.Tag = "builder_centeroncoordinates";
-			this.menugotocoords.Text = "Go To Coordinates...";
-			this.menugotocoords.Click += new System.EventHandler(this.InvokeTaggedAction);
+			this.itemgotocoords.Name = "itemgotocoords";
+			this.itemgotocoords.Size = new System.Drawing.Size(215, 22);
+			this.itemgotocoords.Tag = "builder_centeroncoordinates";
+			this.itemgotocoords.Text = "Go To Coordinates...";
+			this.itemgotocoords.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// itemfittoscreen
 			// 
@@ -946,15 +940,6 @@ namespace CodeImp.DoomBuilder.Windows
 			this.itemtoggleinfo.Text = "&Expanded Info Panel";
 			this.itemtoggleinfo.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
-			// itemtogglecomments
-			// 
-			this.itemtogglecomments.CheckOnClick = true;
-			this.itemtogglecomments.Name = "itemtogglecomments";
-			this.itemtogglecomments.Size = new System.Drawing.Size(215, 22);
-			this.itemtogglecomments.Tag = "builder_togglecomments";
-			this.itemtogglecomments.Text = "Show Comments";
-			this.itemtogglecomments.Click += new System.EventHandler(this.InvokeTaggedAction);
-			// 
 			// seperatorviewzoom
 			// 
 			this.seperatorviewzoom.Margin = new System.Windows.Forms.Padding(0, 3, 0, 3);
@@ -1231,15 +1216,15 @@ namespace CodeImp.DoomBuilder.Windows
             this.separatorfilters,
             this.buttonfullbrightness,
             this.buttontogglegrid,
-            this.buttontoggledynamicgrid,
+            this.buttontogglecomments,
             this.separatorfullbrightness,
             this.buttonviewnormal,
             this.buttonviewbrightness,
             this.buttonviewfloors,
             this.buttonviewceilings,
             this.seperatorviews,
-            this.buttontogglecomments,
             this.buttonsnaptogrid,
+            this.buttontoggledynamicgrid,
             this.buttonautomerge,
             this.buttonautoclearsidetextures,
             this.seperatorgeometry,
@@ -1533,7 +1518,9 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			// buttonfullbrightness
 			// 
+			this.buttonfullbrightness.Checked = true;
 			this.buttonfullbrightness.CheckOnClick = true;
+			this.buttonfullbrightness.CheckState = System.Windows.Forms.CheckState.Checked;
 			this.buttonfullbrightness.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
 			this.buttonfullbrightness.Image = global::CodeImp.DoomBuilder.Properties.Resources.Brightness;
 			this.buttonfullbrightness.ImageTransparentColor = System.Drawing.Color.Magenta;
@@ -1545,7 +1532,9 @@ namespace CodeImp.DoomBuilder.Windows
 			// 
 			// buttontogglegrid
 			// 
+			this.buttontogglegrid.Checked = true;
 			this.buttontogglegrid.CheckOnClick = true;
+			this.buttontogglegrid.CheckState = System.Windows.Forms.CheckState.Checked;
 			this.buttontogglegrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
 			this.buttontogglegrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.Grid2;
 			this.buttontogglegrid.ImageTransparentColor = System.Drawing.Color.Magenta;
@@ -1555,6 +1544,20 @@ namespace CodeImp.DoomBuilder.Windows
 			this.buttontogglegrid.Text = "Render Grid";
 			this.buttontogglegrid.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
+			// buttontoggledynamicgrid
+			// 
+			this.buttontoggledynamicgrid.Checked = true;
+			this.buttontoggledynamicgrid.CheckOnClick = true;
+			this.buttontoggledynamicgrid.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.buttontoggledynamicgrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+			this.buttontoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
+			this.buttontoggledynamicgrid.ImageTransparentColor = System.Drawing.Color.Magenta;
+			this.buttontoggledynamicgrid.Name = "buttontoggledynamicgrid";
+			this.buttontoggledynamicgrid.Size = new System.Drawing.Size(23, 22);
+			this.buttontoggledynamicgrid.Tag = "builder_toggledynamicgrid";
+			this.buttontoggledynamicgrid.Text = "Dynamic Grid Size";
+			this.buttontoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
 			// separatorfullbrightness
 			// 
 			this.separatorfullbrightness.Margin = new System.Windows.Forms.Padding(6, 0, 6, 0);
@@ -2383,17 +2386,29 @@ namespace CodeImp.DoomBuilder.Windows
 			this.modecontrolsloolbar.Text = "toolStrip1";
 			this.modecontrolsloolbar.Visible = false;
 			// 
-			// buttontoggledynamicgrid
+			// itemtogglecomments
 			// 
-			this.buttontoggledynamicgrid.CheckOnClick = true;
-			this.buttontoggledynamicgrid.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
-			this.buttontoggledynamicgrid.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
-			this.buttontoggledynamicgrid.ImageTransparentColor = System.Drawing.Color.Magenta;
-			this.buttontoggledynamicgrid.Name = "buttontoggledynamicgrid";
-			this.buttontoggledynamicgrid.Size = new System.Drawing.Size(23, 22);
-			this.buttontoggledynamicgrid.Tag = "builder_toggledynamicgrid";
-			this.buttontoggledynamicgrid.Text = "Dynamic Grid Size";
-			this.buttontoggledynamicgrid.Click += new System.EventHandler(this.InvokeTaggedAction);
+			this.itemtogglecomments.Checked = true;
+			this.itemtogglecomments.CheckOnClick = true;
+			this.itemtogglecomments.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemtogglecomments.Image = global::CodeImp.DoomBuilder.Properties.Resources.Comment;
+			this.itemtogglecomments.Name = "itemtogglecomments";
+			this.itemtogglecomments.Size = new System.Drawing.Size(215, 22);
+			this.itemtogglecomments.Tag = "builder_togglecomments";
+			this.itemtogglecomments.Text = "Show Comments";
+			this.itemtogglecomments.Click += new System.EventHandler(this.InvokeTaggedAction);
+			// 
+			// itemdynamicgridsize
+			// 
+			this.itemdynamicgridsize.Checked = true;
+			this.itemdynamicgridsize.CheckOnClick = true;
+			this.itemdynamicgridsize.CheckState = System.Windows.Forms.CheckState.Checked;
+			this.itemdynamicgridsize.Image = global::CodeImp.DoomBuilder.Properties.Resources.GridDynamic;
+			this.itemdynamicgridsize.Name = "itemdynamicgridsize";
+			this.itemdynamicgridsize.Size = new System.Drawing.Size(219, 22);
+			this.itemdynamicgridsize.Tag = "builder_toggledynamicgrid";
+			this.itemdynamicgridsize.Text = "Dynamic Grid Size";
+			this.itemdynamicgridsize.Click += new System.EventHandler(this.InvokeTaggedAction);
 			// 
 			// MainForm
 			// 
@@ -2616,13 +2631,13 @@ namespace CodeImp.DoomBuilder.Windows
 		private System.Windows.Forms.Label modename;
 		private System.Windows.Forms.ToolStripMenuItem itemautoclearsidetextures;
 		private System.Windows.Forms.ToolStripButton buttonautoclearsidetextures;
-		private System.Windows.Forms.ToolStripMenuItem menugotocoords;
+		private System.Windows.Forms.ToolStripMenuItem itemgotocoords;
 		private System.Windows.Forms.ToolStripSeparator separatorTransformModes;
 		private System.Windows.Forms.ToolStripMenuItem itemdosnaptogrid;
 		private System.Windows.Forms.ToolStrip modestoolbar;
 		private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel;
 		private System.Windows.Forms.ToolStrip modecontrolsloolbar;
-		private System.Windows.Forms.ToolStripMenuItem menufullbrightness;
+		private System.Windows.Forms.ToolStripMenuItem itemfullbrightness;
 		private System.Windows.Forms.ToolStripSeparator toolStripSeparator4;
 		private System.Windows.Forms.ToolStripButton buttonfullbrightness;
 		private System.Windows.Forms.ToolStripSeparator separatorfullbrightness;
@@ -2646,15 +2661,15 @@ namespace CodeImp.DoomBuilder.Windows
 		private ToolStripMenuItem item2zoom800;
 		private ToolStripMenuItem itemzoom800;
 		private ToolStripButton buttontogglecomments;
-		private ToolStripMenuItem itemtogglecomments;
 		private ToolStripMenuItem itemlinedefcolors;
 		private ToolStripSeparator separatorlinecolors;
 		private ToolStripButton buttonlinededfcolors;
 		private ToolStripDropDownButton linedefcolorpresets;
 		private ToolStripDropDownButton thingfilters;
-		private ToolStripMenuItem menutogglegrid;
+		private ToolStripMenuItem itemtogglegrid;
 		private ToolStripButton buttontogglegrid;
-		private ToolStripMenuItem menutoggledynamicgrid;
 		private ToolStripButton buttontoggledynamicgrid;
+		private ToolStripMenuItem itemdynamicgridsize;
+		private ToolStripMenuItem itemtogglecomments;
 	}
 }
\ No newline at end of file
diff --git a/Source/Core/Windows/MainForm.cs b/Source/Core/Windows/MainForm.cs
index c5895ff8fd6b4adde1aa7d75852b88f644b1a527..e8d73fdf0feb49b8b3b72159eaf8c4ba9fb68c8c 100644
--- a/Source/Core/Windows/MainForm.cs
+++ b/Source/Core/Windows/MainForm.cs
@@ -1008,8 +1008,6 @@ namespace CodeImp.DoomBuilder.Windows
 		// Set grid to a specified size
 		private void itemgridsize_Click(object sender, EventArgs e)
 		{
-			int size;
-
 			if(General.Map == null) return;
 
 			// In classic mode?
@@ -1019,7 +1017,7 @@ namespace CodeImp.DoomBuilder.Windows
 				if(sender is ToolStripMenuItem)
 				{
 					// Get integral zoom level
-					size = int.Parse((sender as ToolStripMenuItem).Tag.ToString(), CultureInfo.InvariantCulture);
+					int size = int.Parse((sender as ToolStripMenuItem).Tag.ToString(), CultureInfo.InvariantCulture);
 
 					// Change grid size
 					General.Map.Grid.SetGridSize(size);
@@ -2070,17 +2068,17 @@ namespace CodeImp.DoomBuilder.Windows
 			buttonfullbrightness.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttontogglegrid.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttontogglegrid.Checked = General.Settings.RenderGrid; //mxd
-			buttontoggledynamicgrid.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
-			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
+			buttontogglecomments.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
+			buttontogglecomments.Enabled = maploaded && General.Map.UDMF; //mxd
+			buttontogglecomments.Checked = General.Settings.RenderComments; //mxd
 			separatorfullbrightness.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
 			buttonviewbrightness.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewceilings.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewfloors.Visible = General.Settings.ToolbarViewModes && maploaded;
 			buttonviewnormal.Visible = General.Settings.ToolbarViewModes && maploaded;
-			buttontogglecomments.Visible = General.Settings.ToolbarViewModes && maploaded; //mxd
-			buttontogglecomments.Enabled = maploaded && General.Map.UDMF; //mxd
-			buttontogglecomments.Checked = General.Settings.RenderComments; //mxd
 			buttonsnaptogrid.Visible = General.Settings.ToolbarGeometry && maploaded;
+			buttontoggledynamicgrid.Visible = General.Settings.ToolbarGeometry && maploaded; //mxd
+			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
 			buttonautomerge.Visible = General.Settings.ToolbarGeometry && maploaded;
 			buttonautoclearsidetextures.Visible = General.Settings.ToolbarGeometry && maploaded; //mxd
 			buttontest.Visible = General.Settings.ToolbarTesting && maploaded;
@@ -2747,6 +2745,8 @@ namespace CodeImp.DoomBuilder.Windows
 			itempaste.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			itempastespecial.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			itemautoclearsidetextures.Checked = General.Settings.AutoClearSidedefTextures; //mxd
+			itemdynamicgridsize.Enabled = (General.Map != null); //mxd
+			itemdynamicgridsize.Checked = General.Settings.DynamicGridSize; //mxd
 
 			// Determine undo description
 			if(itemundo.Enabled)
@@ -2858,7 +2858,7 @@ namespace CodeImp.DoomBuilder.Windows
 		{
 			Renderer.FullBrightness = !Renderer.FullBrightness;
 			buttonfullbrightness.Checked = Renderer.FullBrightness;
-			menufullbrightness.Checked = Renderer.FullBrightness;
+			itemfullbrightness.Checked = Renderer.FullBrightness;
 			General.Interface.DisplayStatus(StatusType.Action, "Full Brightness is now " + (Renderer.FullBrightness ? "ON" : "OFF"));
 
 			// Redraw display to show changes
@@ -2870,7 +2870,7 @@ namespace CodeImp.DoomBuilder.Windows
 		protected void ToggleGrid()
 		{
 			General.Settings.RenderGrid = !General.Settings.RenderGrid;
-			menutogglegrid.Checked = General.Settings.RenderGrid;
+			itemtogglegrid.Checked = General.Settings.RenderGrid;
 			buttontogglegrid.Checked = General.Settings.RenderGrid;
 			General.Interface.DisplayStatus(StatusType.Action, "Grid rendering is " + (General.Settings.RenderGrid ? "ENABLED" : "DISABLED"));
 
@@ -2884,7 +2884,7 @@ namespace CodeImp.DoomBuilder.Windows
 		protected void ToggleDynamicGrid()
 		{
 			General.Settings.DynamicGridSize = !General.Settings.DynamicGridSize;
-			menutoggledynamicgrid.Checked = General.Settings.DynamicGridSize;
+			itemdynamicgridsize.Checked = General.Settings.DynamicGridSize;
 			buttontoggledynamicgrid.Checked = General.Settings.DynamicGridSize;
 			General.Interface.DisplayStatus(StatusType.Action, "Dynamic grid size is " + (General.Settings.DynamicGridSize ? "ENABLED" : "DISABLED"));
 
@@ -2926,36 +2926,18 @@ namespace CodeImp.DoomBuilder.Windows
 		// This sets up the modes menu
 		private void UpdateViewMenu()
 		{
+			menuview.Visible = (General.Map != null); //mxd
+			
 			// Menu items
-			itemthingsfilter.Enabled = (General.Map != null);
-			itemlinedefcolors.Enabled = (General.Map != null); //mxd
-			itemscripteditor.Enabled = (General.Map != null);
-			itemfittoscreen.Enabled = (General.Map != null);
-			menuzoom.Enabled = (General.Map != null);
-			menugotocoords.Enabled = (General.Map != null); //mxd
-			menufullbrightness.Enabled = (General.Map != null); //mxd
-			menutogglegrid.Enabled = (General.Map != null); //mxd
-			menutogglegrid.Checked = General.Settings.RenderGrid; //mxd
-			menutoggledynamicgrid.Enabled = (General.Map != null); //mxd
-			menutoggledynamicgrid.Checked = General.Settings.DynamicGridSize; //mxd
-			itemtoggleinfo.Enabled = (General.Map != null); //mxd
+			itemtogglegrid.Checked = General.Settings.RenderGrid; //mxd
 			itemtoggleinfo.Checked = IsInfoPanelExpanded;
 			itemtogglecomments.Enabled = (General.Map != null && General.Map.UDMF); //mxd
 			itemtogglecomments.Checked = General.Settings.RenderComments; //mxd
 			
 			// View mode items
-			for(int i = 0; i < Renderer2D.NUM_VIEW_MODES; i++)
+			if(General.Map != null)
 			{
-				// NOTE: We only disable them when no map is loaded, because they may
-				// need to be disabled for non-classic modes
-				if(General.Map == null)
-				{
-					viewmodesbuttons[i].Enabled = false;
-					viewmodesbuttons[i].Checked = false;
-					viewmodesitems[i].Enabled = false;
-					viewmodesitems[i].Checked = false;
-				}
-				else
+				for(int i = 0; i < Renderer2D.NUM_VIEW_MODES; i++)
 				{
 					// Check the correct item
 					viewmodesbuttons[i].Checked = (i == (int)General.Map.CRenderer2D.ViewMode);
@@ -3133,6 +3115,8 @@ namespace CodeImp.DoomBuilder.Windows
 		// This sets up the prefabs menu
 		private void UpdatePrefabsMenu()
 		{
+			menuprefabs.Visible = (General.Map != null); //mxd
+			
 			// Enable/disable items
 			itemcreateprefab.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;
 			iteminsertprefabfile.Enabled = (General.Map != null) && (General.Editing.Mode != null) && General.Editing.Mode.Attributes.AllowCopyPaste;