diff --git a/src/doomdata.h b/src/doomdata.h
index 0b6210d2fcb768c2c8bf210f0fd0dc9e70e450b4..e2675e3dd32b85b41582c5542751360add31683e 100644
--- a/src/doomdata.h
+++ b/src/doomdata.h
@@ -32,23 +32,6 @@
 // used in the lumps of the WAD files.
 //
 
-// Lump order in a map WAD: each map needs a couple of lumps
-// to provide a complete scene geometry description.
-enum
-{
-	ML_LABEL,    // A separator, name, MAPxx
-	ML_THINGS,   // Enemies, rings, monitors, scenery, etc.
-	ML_LINEDEFS, // Linedefs, from editing
-	ML_SIDEDEFS, // Sidedefs, from editing
-	ML_VERTEXES, // Vertices, edited and BSP splits generated
-	ML_SEGS,     // Linesegs, from linedefs split by BSP
-	ML_SSECTORS, // Subsectors, list of linesegs
-	ML_NODES,    // BSP nodes
-	ML_SECTORS,  // Sectors, from editing
-	ML_REJECT,    // LUT, sector-sector visibility
-	ML_BLOCKMAP,  // LUT, motion clipping, walls/grid element
-};
-
 // Extra flag for objects.
 #define MTF_EXTRA 1
 
diff --git a/src/p_setup.c b/src/p_setup.c
index 43a4f46a17c1d7f59131e8207cdcee32a92ee2e7..f3b4b6b8f0c7717fd71f58ffee3aaf3cbc16f323 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -785,69 +785,6 @@ void P_SwitchSpheresBonusMode(boolean bonustime)
 	}
 }
 
-#ifdef SCANTHINGS
-void P_ScanThings(INT16 mapnum, INT16 wadnum, INT16 lumpnum)
-{
-	size_t i, n;
-	UINT8 *data, *datastart;
-	UINT16 type, maprings;
-	INT16 tol;
-	UINT32 flags;
-
-	tol = mapheaderinfo[mapnum-1]->typeoflevel;
-	if (!(tol & TOL_SP))
-		return;
-	flags = mapheaderinfo[mapnum-1]->levelflags;
-
-	n = W_LumpLengthPwad(wadnum, lumpnum) / (5 * sizeof (INT16));
-	//CONS_Printf("%u map things found!\n", n);
-
-	maprings = 0;
-	data = datastart = W_CacheLumpNumPwad(wadnum, lumpnum, PU_STATIC);
-	for (i = 0; i < n; i++)
-	{
-		data += 3 * sizeof (INT16); // skip x y position, angle
-		type = READUINT16(data) & 4095;
-		data += sizeof (INT16); // skip options
-
-		switch (type)
-		{
-		case 300: // MT_RING
-		case 1800: // MT_COIN
-		case 308: // red team ring
-		case 309: // blue team ring
-			maprings++;
-			break;
-		case 400: // MT_SUPERRINGBOX
-		case 414: // red ring box
-		case 415: // blue ring box
-		case 603: // 10 diagonal rings
-			maprings += 10;
-			break;
-		case 600: // 5 vertical rings
-		case 601: // 5 vertical rings
-		case 602: // 5 diagonal rings
-			maprings += 5;
-			break;
-		case 604: // 8 circle rings
-		case 609: // 16 circle rings & wings
-			maprings += 8;
-			break;
-		case 605: // 16 circle rings
-			maprings += 16;
-			break;
-		case 608: // 8 circle rings & wings
-			maprings += 4;
-			break;
-		}
-	}
-	Z_Free(datastart);
-
-	if (maprings)
-		CONS_Printf("%s has %u rings\n", G_BuildMapName(mapnum), maprings);
-}
-#endif
-
 static void P_SpawnEmeraldHunt(void)
 {
 	INT32 emer[3], num[MAXHUNTEMERALDS], i, randomkey;
diff --git a/src/p_setup.h b/src/p_setup.h
index a3f850ff6b66de423d936ab2af1cc62e299fd46e..090a35cb254dff88b3a870de89b10e6aff36cc97 100644
--- a/src/p_setup.h
+++ b/src/p_setup.h
@@ -94,9 +94,6 @@ extern size_t nummapthings;
 extern mapthing_t *mapthings;
 
 void P_SetupLevelSky(INT32 skynum, boolean global);
-#ifdef SCANTHINGS
-void P_ScanThings(INT16 mapnum, INT16 wadnum, INT16 lumpnum);
-#endif
 void P_RespawnThings(void);
 boolean P_LoadLevel(boolean fromnetsave, boolean reloadinggamestate);
 #ifdef HWRENDER
diff --git a/src/w_wad.c b/src/w_wad.c
index 51e5e7ab991738f7890a6dfb5c4ea4454fbe8c3f..10359de22826096ef2cbb5700564436d9fa79a22 100644
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -64,9 +64,6 @@
 #include "i_video.h" // rendermode
 #include "md5.h"
 #include "lua_script.h"
-#ifdef SCANTHINGS
-#include "p_setup.h" // P_ScanThings
-#endif
 #include "m_misc.h" // M_MapNumber
 #include "g_game.h" // G_SetGameModified
 
@@ -278,22 +275,6 @@ static void W_LoadDehackedLumps(UINT16 wadnum, boolean mainfile)
 				DEH_LoadDehackedLumpPwad(wadnum, lump, mainfile);
 			}
 	}
-
-#ifdef SCANTHINGS
-	// Scan maps for emblems 'n shit
-	{
-		lumpinfo_t *lump_p = wadfiles[wadnum]->lumpinfo;
-		for (lump = 0; lump < wadfiles[wadnum]->numlumps; lump++, lump_p++)
-		{
-			const char *name = lump_p->name;
-			if (name[0] == 'M' && name[1] == 'A' && name[2] == 'P' && name[5]=='\0')
-			{
-				INT16 mapnum = (INT16)M_MapNumber(name[3], name[4]);
-				P_ScanThings(mapnum, wadnum, lump + ML_THINGS);
-			}
-		}
-	}
-#endif
 }
 
 /** Compute MD5 message digest for bytes read from STREAM of this filname.