diff --git a/src/Makefile.d/versions.mk b/src/Makefile.d/versions.mk
index 7c130d90846ab6f4199eb618ee918fdb6999e5cc..470010e8ba098bef3636a085bc32bc76458bf475 100644
--- a/src/Makefile.d/versions.mk
+++ b/src/Makefile.d/versions.mk
@@ -85,7 +85,7 @@ endif
 #WFLAGS+=-Wunreachable-code
  WFLAGS+=-Winline
 ifdef DEBUGMODE
- WFLAGS+=-Wno-error=inline
+ WFLAGS+=-Wno-inline
 endif
 ifdef GCC43
  WFLAGS+=-funit-at-a-time
diff --git a/src/d_main.c b/src/d_main.c
index c139650d1eb039a057da10d063f392f33c94fac2..60a1579c3b499acce2d952781f5fd3a1f97d5339 100644
--- a/src/d_main.c
+++ b/src/d_main.c
@@ -1429,7 +1429,8 @@ void D_SRB2Main(void)
 	I_InitializeTime();
 
 	// Make backups of some SOCcable tables.
-	P_BackupTables();
+	P_InitializeTables();
+	//P_BackupTables();
 
 	mainwads = 3; // doesn't include music.dta
 #ifdef USE_PATCH_DTA
diff --git a/src/deh_lua.c b/src/deh_lua.c
index 64fb52fc7423a7486c9d6736762fedd0fcde64ba..1dcf0f13c3889508705c26f7bbd6bb62b941b78b 100644
--- a/src/deh_lua.c
+++ b/src/deh_lua.c
@@ -98,18 +98,9 @@ static inline int lib_freeslot(lua_State *L)
 		}
 		else if (fastcmp(type, "MT"))
 		{
-			mobjtype_t i;
-			for (i = 0; i < NUMMOBJFREESLOTS; i++)
-				if (!FREE_MOBJS[i]) {
-					CONS_Printf("MobjType MT_%s allocated.\n",word);
-					FREE_MOBJS[i] = Z_Malloc(strlen(word)+1, PU_STATIC, NULL);
-					strcpy(FREE_MOBJS[i],word);
-					lua_pushinteger(L, MT_FIRSTFREESLOT + i);
-					r++;
-					break;
-				}
-			if (i == NUMMOBJFREESLOTS)
-				CONS_Alert(CONS_WARNING, "Ran out of free MobjType slots!\n");
+			CONS_Printf("MobjType MT_%s allocated.\n",word);
+			lua_pushinteger(L, P_AllocateMobjinfo(Z_StrDup(va("MT_%s", word))));
+			r++;
 		}
 		else if (fastcmp(type, "SKINCOLOR"))
 		{
@@ -432,20 +423,12 @@ static int ScanConstants(lua_State *L, boolean mathlib, const char *word)
 		return luaL_error(L, "state '%s' does not exist.\n", word);
 	}
 	else if (fastncmp("MT_",word,3)) {
-		p = word+3;
-		for (i = 0; i < NUMMOBJFREESLOTS; i++) {
-			if (!FREE_MOBJS[i])
-				break;
-			if (fastcmp(p, FREE_MOBJS[i])) {
-				CacheAndPushConstant(L, word, MT_FIRSTFREESLOT+i);
-				return 1;
-			}
-		}
-		for (i = 0; i < MT_FIRSTFREESLOT; i++)
-			if (fastcmp(p, MOBJTYPE_LIST[i]+3)) {
+		for (i = 0; (size_t)i < nummobjinfo; i++) {
+			if (fastcmp(word, mobjinfo[i]->name)) {
 				CacheAndPushConstant(L, word, i);
 				return 1;
 			}
+		}
 		return luaL_error(L, "mobjtype '%s' does not exist.\n", word);
 	}
 	else if (fastncmp("SPR_",word,4)) {
diff --git a/src/deh_soc.c b/src/deh_soc.c
index dda3b2ef4b31352b1579623421cdc2733da56585..9c07a38f1df4194599fa2e7f9468e9832a178f48 100644
--- a/src/deh_soc.c
+++ b/src/deh_soc.c
@@ -468,12 +468,8 @@ void readfreeslots(MYFILE *f)
 			}
 			else if (fastcmp(type, "MT"))
 			{
-				for (i = 0; i < NUMMOBJFREESLOTS; i++)
-					if (!FREE_MOBJS[i]) {
-						FREE_MOBJS[i] = Z_Malloc(strlen(word)+1, PU_STATIC, NULL);
-						strcpy(FREE_MOBJS[i],word);
-						break;
-					}
+				CONS_Printf("MobjType MT_%s allocated.\n",word);
+				P_AllocateMobjinfo(Z_StrDup(va("MT_%s", word)));
 			}
 			else if (fastcmp(type, "SKINCOLOR"))
 			{
@@ -567,99 +563,99 @@ void readthing(MYFILE *f, INT32 num)
 
 			if (fastcmp(word, "MAPTHINGNUM") || fastcmp(word, "DOOMEDNUM"))
 			{
-				mobjinfo[num].doomednum = (INT32)atoi(word2);
+				mobjinfo[num]->doomednum = (INT32)atoi(word2);
 			}
 			else if (fastcmp(word, "SPAWNSTATE"))
 			{
-				mobjinfo[num].spawnstate = get_number(word2);
+				mobjinfo[num]->spawnstate = get_number(word2);
 			}
 			else if (fastcmp(word, "SPAWNHEALTH"))
 			{
-				mobjinfo[num].spawnhealth = (INT32)get_number(word2);
+				mobjinfo[num]->spawnhealth = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "SEESTATE"))
 			{
-				mobjinfo[num].seestate = get_number(word2);
+				mobjinfo[num]->seestate = get_number(word2);
 			}
 			else if (fastcmp(word, "SEESOUND"))
 			{
-				mobjinfo[num].seesound = get_number(word2);
+				mobjinfo[num]->seesound = get_number(word2);
 			}
 			else if (fastcmp(word, "REACTIONTIME"))
 			{
-				mobjinfo[num].reactiontime = (INT32)get_number(word2);
+				mobjinfo[num]->reactiontime = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "ATTACKSOUND"))
 			{
-				mobjinfo[num].attacksound = get_number(word2);
+				mobjinfo[num]->attacksound = get_number(word2);
 			}
 			else if (fastcmp(word, "PAINSTATE"))
 			{
-				mobjinfo[num].painstate = get_number(word2);
+				mobjinfo[num]->painstate = get_number(word2);
 			}
 			else if (fastcmp(word, "PAINCHANCE"))
 			{
-				mobjinfo[num].painchance = (INT32)get_number(word2);
+				mobjinfo[num]->painchance = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "PAINSOUND"))
 			{
-				mobjinfo[num].painsound = get_number(word2);
+				mobjinfo[num]->painsound = get_number(word2);
 			}
 			else if (fastcmp(word, "MELEESTATE"))
 			{
-				mobjinfo[num].meleestate = get_number(word2);
+				mobjinfo[num]->meleestate = get_number(word2);
 			}
 			else if (fastcmp(word, "MISSILESTATE"))
 			{
-				mobjinfo[num].missilestate = get_number(word2);
+				mobjinfo[num]->missilestate = get_number(word2);
 			}
 			else if (fastcmp(word, "DEATHSTATE"))
 			{
-				mobjinfo[num].deathstate = get_number(word2);
+				mobjinfo[num]->deathstate = get_number(word2);
 			}
 			else if (fastcmp(word, "DEATHSOUND"))
 			{
-				mobjinfo[num].deathsound = get_number(word2);
+				mobjinfo[num]->deathsound = get_number(word2);
 			}
 			else if (fastcmp(word, "XDEATHSTATE"))
 			{
-				mobjinfo[num].xdeathstate = get_number(word2);
+				mobjinfo[num]->xdeathstate = get_number(word2);
 			}
 			else if (fastcmp(word, "SPEED"))
 			{
-				mobjinfo[num].speed = get_number(word2);
+				mobjinfo[num]->speed = get_number(word2);
 			}
 			else if (fastcmp(word, "RADIUS"))
 			{
-				mobjinfo[num].radius = get_number(word2);
+				mobjinfo[num]->radius = get_number(word2);
 			}
 			else if (fastcmp(word, "HEIGHT"))
 			{
-				mobjinfo[num].height = get_number(word2);
+				mobjinfo[num]->height = get_number(word2);
 			}
 			else if (fastcmp(word, "DISPOFFSET"))
 			{
-				mobjinfo[num].dispoffset = get_number(word2);
+				mobjinfo[num]->dispoffset = get_number(word2);
 			}
 			else if (fastcmp(word, "MASS"))
 			{
-				mobjinfo[num].mass = (INT32)get_number(word2);
+				mobjinfo[num]->mass = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "DAMAGE"))
 			{
-				mobjinfo[num].damage = (INT32)get_number(word2);
+				mobjinfo[num]->damage = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "ACTIVESOUND"))
 			{
-				mobjinfo[num].activesound = get_number(word2);
+				mobjinfo[num]->activesound = get_number(word2);
 			}
 			else if (fastcmp(word, "FLAGS"))
 			{
-				mobjinfo[num].flags = (INT32)get_number(word2);
+				mobjinfo[num]->flags = (INT32)get_number(word2);
 			}
 			else if (fastcmp(word, "RAISESTATE"))
 			{
-				mobjinfo[num].raisestate = get_number(word2);
+				mobjinfo[num]->raisestate = get_number(word2);
 			}
 			else
 				deh_warning("Thing %d: unknown word '%s'", num, word);
@@ -4120,17 +4116,11 @@ mobjtype_t get_mobjtype(const char *word)
 	mobjtype_t i;
 	if (*word >= '0' && *word <= '9')
 		return atoi(word);
-	if (fastncmp("MT_",word,3))
-		word += 3; // take off the MT_
-	for (i = 0; i < NUMMOBJFREESLOTS; i++) {
-		if (!FREE_MOBJS[i])
-			break;
-		if (fastcmp(word, FREE_MOBJS[i]))
-			return MT_FIRSTFREESLOT+i;
-	}
-	for (i = 0; i < MT_FIRSTFREESLOT; i++)
-		if (fastcmp(word, MOBJTYPE_LIST[i]+3))
+	I_Assert(fastncmp("MT_",word,3));
+	for (i = 0; i < nummobjinfo; i++) {
+		if (fastcmp(word, mobjinfo[i]->name))
 			return i;
+	}
 	deh_warning("Couldn't find mobjtype named 'MT_%s'",word);
 	return MT_NULL;
 }
diff --git a/src/deh_tables.c b/src/deh_tables.c
index c7c7c604068cd4761ea3944a92cd4efecd9a0ddb..82523caffbf233916853db3a27afceb6b7200857 100644
--- a/src/deh_tables.c
+++ b/src/deh_tables.c
@@ -29,7 +29,6 @@
 #include "deh_tables.h"
 
 char *FREE_STATES[NUMSTATEFREESLOTS];
-char *FREE_MOBJS[NUMMOBJFREESLOTS];
 char *FREE_SKINCOLORS[NUMCOLORFREESLOTS];
 bitarray_t used_spr[BIT_ARRAY_SIZE(NUMSPRITEFREESLOTS)]; // Sprite freeslots in use
 
@@ -5813,16 +5812,12 @@ void DEH_TableCheck(void)
 {
 #if defined(_DEBUG) || defined(PARANOIA)
 	const size_t dehstates = sizeof(STATE_LIST)/sizeof(const char*);
-	const size_t dehmobjs  = sizeof(MOBJTYPE_LIST)/sizeof(const char*);
 	const size_t dehpowers = sizeof(POWERS_LIST)/sizeof(const char*);
 	const size_t dehcolors = sizeof(COLOR_ENUMS)/sizeof(const char*);
 
 	if (dehstates != S_FIRSTFREESLOT)
 		I_Error("You forgot to update the Dehacked states list, you dolt!\n(%d states defined, versus %s in the Dehacked list)\n", S_FIRSTFREESLOT, sizeu1(dehstates));
 
-	if (dehmobjs != MT_FIRSTFREESLOT)
-		I_Error("You forgot to update the Dehacked mobjtype list, you dolt!\n(%d mobj types defined, versus %s in the Dehacked list)\n", MT_FIRSTFREESLOT, sizeu1(dehmobjs));
-
 	if (dehpowers != NUMPOWERS)
 		I_Error("You forgot to update the Dehacked powers list, you dolt!\n(%d powers defined, versus %s in the Dehacked list)\n", NUMPOWERS, sizeu1(dehpowers));
 
diff --git a/src/deh_tables.h b/src/deh_tables.h
index b6986adff0166c3132be5f70ca78c7835030998f..61592e47ef9e991e66cfbb86bd66d767129cb709 100644
--- a/src/deh_tables.h
+++ b/src/deh_tables.h
@@ -21,13 +21,11 @@
 // Free slot names
 // The crazy word-reading stuff uses these.
 extern char *FREE_STATES[NUMSTATEFREESLOTS];
-extern char *FREE_MOBJS[NUMMOBJFREESLOTS];
 extern char *FREE_SKINCOLORS[NUMCOLORFREESLOTS];
 extern bitarray_t used_spr[BIT_ARRAY_SIZE(NUMSPRITEFREESLOTS)]; // Sprite freeslots in use
 
 #define initfreeslots() {\
 	memset(FREE_STATES, 0, sizeof(FREE_STATES));\
-	memset(FREE_MOBJS, 0, sizeof(FREE_MOBJS));\
 	memset(FREE_SKINCOLORS, 0, sizeof(FREE_SKINCOLORS));\
 	memset(used_spr, 0, sizeof(used_spr));\
 	memset(actionsoverridden, LUA_REFNIL, sizeof(actionsoverridden));\
diff --git a/src/dehacked.c b/src/dehacked.c
index 2050a117f67128dae4e40b992e5a49f1538457d7..253c3c6861e1eb5327aa518b05522e71b32f9cdd 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -301,11 +301,11 @@ static void DEH_LoadDehackedFile(MYFILE *f, boolean mainfile)
 				{
 					if (i == 0 && word2[0] != '0') // If word2 isn't a number
 						i = get_mobjtype(word2); // find a thing by name
-					if (i < NUMMOBJTYPES && i > 0)
+					if (i < (INT32)nummobjinfo && i > 0)
 						readthing(f, i);
 					else
 					{
-						deh_warning("Thing %d out of range (1 - %d)", i, NUMMOBJTYPES-1);
+						deh_warning("Thing %d out of range (1 - %zu)", i, nummobjinfo-1);
 						ignorelines(f);
 					}
 				}
diff --git a/src/g_demo.c b/src/g_demo.c
index 0efba5a59724f3b64f3a9ed9dbcf1d137a472e47..b60aadacc569657869fad932104149b4506dab58 100644
--- a/src/g_demo.c
+++ b/src/g_demo.c
@@ -787,13 +787,13 @@ void G_GhostTicker(void)
 					switch (xziptic & EZT_THOKMASK)
 					{
 					case EZT_THOK:
-						type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem;
+						type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem;
 						break;
 					case EZT_SPIN:
-						type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem;
+						type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem;
 						break;
 					case EZT_REV:
-						type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem;
+						type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem;
 						break;
 					}
 				}
@@ -810,8 +810,8 @@ void G_GhostTicker(void)
 						mobj = P_SpawnMobjFromMobj(g->mo, 0, 0, -FixedDiv(FixedMul(g->mo->info->height, g->mo->scale) - g->mo->height,3*FRACUNIT), MT_THOK);
 						if (!P_MobjWasRemoved(mobj))
 						{
-							mobj->sprite = states[mobjinfo[type].spawnstate].sprite;
-							mobj->frame = (states[mobjinfo[type].spawnstate].frame & FF_FRAMEMASK) | tr_trans60<<FF_TRANSSHIFT;
+							mobj->sprite = states[mobjinfo[type]->spawnstate].sprite;
+							mobj->frame = (states[mobjinfo[type]->spawnstate].frame & FF_FRAMEMASK) | tr_trans60<<FF_TRANSSHIFT;
 							mobj->color = g->mo->color;
 							mobj->skin = g->mo->skin;
 							P_SetScale(mobj, g->mo->scale, true);
@@ -854,8 +854,8 @@ void G_GhostTicker(void)
 					y = READFIXED(g->p);
 					z = READFIXED(g->p);
 					angle = READANGLE(g->p);
-					if (!(mobjinfo[type].flags & MF_SHOOTABLE)
-					|| !(mobjinfo[type].flags & (MF_ENEMY|MF_MONITOR))
+					if (!(mobjinfo[type]->flags & MF_SHOOTABLE)
+					|| !(mobjinfo[type]->flags & (MF_ENEMY|MF_MONITOR))
 					|| health != 0 || i >= 4) // only spawn for the first 4 hits per frame, to prevent ghosts from splode-spamming too bad.
 						continue;
 					poof = P_SpawnMobj(x, y, z, MT_GHOST);
@@ -1095,13 +1095,13 @@ void G_ReadMetalTic(mobj_t *metal)
 				switch (xziptic & EZT_THOKMASK)
 				{
 				case EZT_THOK:
-					type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem;
+					type = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem;
 					break;
 				case EZT_SPIN:
-					type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem;
+					type = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem;
 					break;
 				case EZT_REV:
-					type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem;
+					type = skin->revitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem;
 					break;
 				}
 			}
@@ -1116,8 +1116,8 @@ void G_ReadMetalTic(mobj_t *metal)
 					mobj = P_SpawnMobjFromMobj(metal, 0, 0, -FixedDiv(FixedMul(metal->info->height, metal->scale) - metal->height,3*FRACUNIT), MT_THOK);
 					if (!P_MobjWasRemoved(mobj))
 					{
-						mobj->sprite = states[mobjinfo[type].spawnstate].sprite;
-						mobj->frame = states[mobjinfo[type].spawnstate].frame;
+						mobj->sprite = states[mobjinfo[type]->spawnstate].sprite;
+						mobj->frame = states[mobjinfo[type]->spawnstate].frame;
 						mobj->angle = metal->angle;
 						mobj->color = metal->color;
 						mobj->skin = metal->skin;
@@ -2567,7 +2567,7 @@ void G_AddGhost(char *defdemoname)
 			return;
 		gh->mo->angle = FixedAngle(mthing->angle << FRACBITS);
 		f = gh->mo->floorz;
-		c = gh->mo->ceilingz - mobjinfo[MT_PLAYER].height;
+		c = gh->mo->ceilingz - mobjinfo[MT_PLAYER]->height;
 		if (!!(mthing->args[0]) ^ !!(mthing->options & MTF_OBJECTFLIP))
 		{
 			z = c - offset;
diff --git a/src/g_game.c b/src/g_game.c
index 8d19c9e7cb68df142e68e7d0277b2425153f9206..75f0d11db1629fd7f9727440eb43067781f5aab2 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -3342,7 +3342,7 @@ void G_AddPlayer(INT32 playernum)
 
 	p->playerstate = PST_REBORN;
 
-	p->height = mobjinfo[MT_PLAYER].height;
+	p->height = mobjinfo[MT_PLAYER]->height;
 
 	if (G_GametypeUsesLives() || ((netgame || multiplayer) && (gametyperules & GTR_FRIENDLY)))
 		p->lives = cv_startinglives.value;
diff --git a/src/info.c b/src/info.c
index 9b33a57ab2f863d24f2355b24acdd6ed208e9765..95b7c94858790ef67633ed087a6cfc16872120d8 100644
--- a/src/info.c
+++ b/src/info.c
@@ -3997,9 +3997,10 @@ state_t states[NUMSTATES] =
 	{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK
 };
 
-mobjinfo_t mobjinfo[NUMMOBJTYPES] =
+static mobjinfo_t startmobjinfo[] =
 {
-	{           // MT_NULL
+	{
+		"MT_NULL",
 		-1,             // doomednum
 		S_NULL,         // spawnstate
 		0,              // spawnhealth
@@ -4026,7 +4027,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_UNKNOWN
+	{
+		"MT_UNKNOWN",
 		-1,             // doomednum
 		S_UNKNOWN,      // spawnstate
 		1,              // spawnhealth
@@ -4053,7 +4055,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THOK
+	{
+		"MT_THOK",
 		-1,             // doomednum
 		S_THOK,         // spawnstate
 		1000,           // spawnhealth
@@ -4080,7 +4083,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PLAYER
+	{
+		"MT_PLAYER",
 		-1,             // doomednum
 		S_PLAY_STND,    // spawnstate
 		1,              // spawnhealth
@@ -4107,7 +4111,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_NULL// raisestate
 	},
 
-	{           // MT_TAILSOVERLAY
+	{
+		"MT_TAILSOVERLAY",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -4134,7 +4139,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_METALJETFUME
+	{
+		"MT_METALJETFUME",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -4161,7 +4167,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_JETFUME1      // raisestate
 	},
 
-	{           // MT_BLUECRAWLA
+	{
+		"MT_BLUECRAWLA",
 		100,            // doomednum
 		S_POSS_STND,    // spawnstate
 		1,              // spawnhealth
@@ -4188,7 +4195,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDCRAWLA
+	{
+		"MT_REDCRAWLA",
 		101,            // doomednum
 		S_SPOS_STND,    // spawnstate
 		1,              // spawnhealth
@@ -4215,7 +4223,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZFISH
+	{
+		"MT_GFZFISH",
 		102,            // doomednum
 		S_FISH2,        // spawnstate
 		1,              // spawnhealth
@@ -4242,7 +4251,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GOLDBUZZ
+	{
+		"MT_GOLDBUZZ",
 		103,            // doomednum
 		S_BUZZLOOK1,    // spawnstate
 		1,              // spawnhealth
@@ -4269,7 +4279,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDBUZZ
+	{
+		"MT_REDBUZZ",
 		104,            // doomednum
 		S_RBUZZLOOK1,   // spawnstate
 		1,              // spawnhealth
@@ -4296,7 +4307,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_JETTBOMBER
+	{
+		"MT_JETTBOMBER",
 		105,            // doomednum
 		S_JETBLOOK1,    // spawnstate
 		1,              // spawnhealth
@@ -4323,7 +4335,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_MINE// raisestate
 	},
 
-	{           // MT_JETTGUNNER
+	{
+		"MT_JETTGUNNER",
 		106,            // doomednum
 		S_JETGLOOK1,    // spawnstate
 		1,              // spawnhealth
@@ -4350,7 +4363,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_JETTBULLET// raisestate
 	},
 
-	{           // MT_CRAWLACOMMANDER
+	{
+		"MT_CRAWLACOMMANDER",
 		107,            // doomednum
 		S_CCOMMAND1,    // spawnstate
 		2,              // spawnhealth
@@ -4377,7 +4391,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DETON
+	{
+		"MT_DETON",
 		108,            // doomednum
 		S_DETON1,       // spawnstate
 		1,              // spawnhealth
@@ -4404,7 +4419,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)ANG15// raisestate: largest angle to turn in one tic (here, 15 degrees)
 	},
 
-	{           // MT_SKIM
+	{
+		"MT_SKIM",
 		109,            // doomednum
 		S_SKIM1,        // spawnstate
 		1,              // spawnhealth
@@ -4431,7 +4447,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_MINE// raisestate
 	},
 
-	{           // MT_TURRET
+	{
+		"MT_TURRET",
 		110,            // doomednum
 		S_TURRET,       // spawnstate
 		1000,           // spawnhealth
@@ -4458,7 +4475,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POPUPTURRET
+	{
+		"MT_POPUPTURRET",
 		111,            // doomednum
 		S_TURRETLOOK,   // spawnstate
 		1,              // spawnhealth
@@ -4485,7 +4503,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_JETTBULLET// raisestate
 	},
 
-	{           // MT_SPINCUSHION
+	{
+		"MT_SPINCUSHION",
 		112,            // doomednum
 		S_SPINCUSHION_LOOK, // spawnstate
 		1,              // spawnhealth
@@ -4512,7 +4531,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CRUSHSTACEAN
+	{
+		"MT_CRUSHSTACEAN",
 		126,            // doomednum
 		S_CRUSHSTACEAN_ROAM1, // spawnstate
 		1,              // spawnhealth
@@ -4539,7 +4559,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CRUSHCLAW
+	{
+		"MT_CRUSHCLAW",
 		-1,             // doomednum
 		S_CRUSHCLAW_AIM, // spawnstate
 		1,              // spawnhealth
@@ -4566,7 +4587,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_CRUSHCHAIN// raisestate
 	},
 
-	{           // MT_CRUSHCHAIN
+	{
+		"MT_CRUSHCHAIN",
 		-1,             // doomednum
 		S_CRUSHCHAIN,   // spawnstate
 		0,              // spawnhealth
@@ -4593,7 +4615,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BANPYURA
+	{
+		"MT_BANPYURA",
 		138,            // doomednum
 		S_BANPYURA_ROAM1, // spawnstate
 		1,              // spawnhealth
@@ -4620,7 +4643,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BANPSPRING
+	{
+		"MT_BANPSPRING",
 		-1,             // doomednum
 		S_CDIAG1,       // spawnstate
 		1,              // spawnhealth
@@ -4647,7 +4671,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_CDIAG2        // raisestate
 	},
 
-	{           // MT_JETJAW
+	{
+		"MT_JETJAW",
 		113,            // doomednum
 		S_JETJAW_ROAM1, // spawnstate
 		1,              // spawnhealth
@@ -4674,7 +4699,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNAILER
+	{
+		"MT_SNAILER",
 		114,            // doomednum
 		S_SNAILER1,     // spawnstate
 		1,              // spawnhealth
@@ -4701,7 +4727,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_VULTURE
+	{
+		"MT_VULTURE",
 		115,            // doomednum
 		S_VULTURE_STND, // spawnstate
 		1,              // spawnhealth
@@ -4728,7 +4755,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POINTY
+	{
+		"MT_POINTY",
 		116,            // doomednum
 		S_POINTY1,      // spawnstate
 		1,              // spawnhealth
@@ -4755,7 +4783,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POINTYBALL
+	{
+		"MT_POINTYBALL",
 		-1,             // doomednum
 		S_POINTYBALL1,  // spawnstate
 		1000,           // spawnhealth
@@ -4782,7 +4811,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROBOHOOD
+	{
+		"MT_ROBOHOOD",
 		117,              // doomednum
 		S_ROBOHOOD_LOOK,  // spawnstate
 		1,                // spawnhealth
@@ -4809,7 +4839,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_ROBOHOOD_JUMP1  // raisestate
 	},
 
-	{           // MT_FACESTABBER
+	{
+		"MT_FACESTABBER",
 		118,            // doomednum
 		S_FACESTABBER_STND1, // spawnstate
 		2,              // spawnhealth
@@ -4836,7 +4867,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FACESTABBERSPEAR
+	{
+		"MT_FACESTABBERSPEAR",
 		-1,              // doomednum
 		S_FACESTABBERSPEAR, // spawnstate
 		1,               // spawnhealth
@@ -4863,7 +4895,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL           // raisestate
 	},
 
-	{           // MT_EGGGUARD
+	{
+		"MT_EGGGUARD",
 		119,             // doomednum
 		S_EGGGUARD_STND, // spawnstate
 		1,               // spawnhealth
@@ -4890,7 +4923,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL           // raisestate
 	},
 
-	{           // MT_EGGSHIELD
+	{
+		"MT_EGGSHIELD",
 		-1,              // doomednum
 		S_EGGSHIELD,     // spawnstate
 		1,               // spawnhealth
@@ -4917,7 +4951,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL           // raisestate
 	},
 
-	{           // MT_GSNAPPER
+	{
+		"MT_GSNAPPER",
 		120,            // doomednum
 		S_SNAPPER_SPAWN,// spawnstate
 		1,              // spawnhealth
@@ -4944,7 +4979,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNAPPER_LEG
+	{
+		"MT_SNAPPER_LEG",
 		-1,             // doomednum
 		S_SNAPPER_LEG,  // spawnstate
 		1,              // spawnhealth
@@ -4971,7 +5007,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_SNAPPER_LEGRAISE // raisestate
 	},
 
-	{           // MT_SNAPPER_HEAD
+	{
+		"MT_SNAPPER_HEAD",
 		-1,             // doomednum
 		S_SNAPPER_HEAD, // spawnstate
 		1,              // spawnhealth
@@ -4998,7 +5035,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MINUS
+	{
+		"MT_MINUS",
 		121,            // doomednum
 		S_MINUS_INIT,   // spawnstate
 		1,              // spawnhealth
@@ -5025,7 +5063,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_MINUS_BURST1  // raisestate
 	},
 
-	{           // MT_MINUSDIRT
+	{
+		"MT_MINUSDIRT",
 		-1,             // doomednum
 		S_MINUSDIRT1,   // spawnstate
 		1,              // spawnhealth
@@ -5052,7 +5091,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPRINGSHELL
+	{
+		"MT_SPRINGSHELL",
 		122,            // doomednum
 		S_SSHELL_STND,  // spawnstate
 		1,              // spawnhealth
@@ -5079,7 +5119,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_SSHELL_SPRING1// raisestate
 	},
 
-	{           // MT_YELLOWSHELL
+	{
+		"MT_YELLOWSHELL",
 		125,            // doomednum
 		S_YSHELL_STND,  // spawnstate
 		1,              // spawnhealth
@@ -5106,7 +5147,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_YSHELL_SPRING1// raisestate
 	},
 
-	{           // MT_UNIDUS
+	{
+		"MT_UNIDUS",
 		123,            // doomednum
 		S_UNIDUS_STND,  // spawnstate
 		1,              // spawnhealth
@@ -5133,7 +5175,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_UNIBALL
+	{
+		"MT_UNIBALL",
 		-1,             // doomednum
 		S_UNIDUS_BALL,  // spawnstate
 		1,              // spawnhealth
@@ -5160,7 +5203,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANARIVORE
+	{
+		"MT_CANARIVORE",
 		134,            // doomednum
 		S_CANARIVORE_LOOK,  // spawnstate
 		1,              // spawnhealth
@@ -5187,7 +5231,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANARIVORE_GAS
+	{
+		"MT_CANARIVORE_GAS",
 		-1,             // doomednum
 		S_CANARIVOREGAS_1,  // spawnstate
 		1,              // spawnhealth
@@ -5214,7 +5259,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PYREFLY
+	{
+		"MT_PYREFLY",
 		136,            // doomednum
 		S_PYREFLY_FLY,  // spawnstate
 		1,              // spawnhealth
@@ -5241,7 +5287,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PYREFLY_FIRE
+	{
+		"MT_PYREFLY_FIRE",
 		-1,             // doomednum
 		S_PYREFIRE1,    // spawnstate
 		1,              // spawnhealth
@@ -5268,7 +5315,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PTERABYTESPAWNER
+	{
+		"MT_PTERABYTESPAWNER",
 		135,            // doomednum
 		S_PTERABYTESPAWNER, // spawnstate
 		1,              // spawnhealth
@@ -5295,7 +5343,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PTERABYTEWAYPOINT
+	{
+		"MT_PTERABYTEWAYPOINT",
 		-1,             // doomednum
 		S_PTERABYTEWAYPOINT, // spawnstate
 		1,              // spawnhealth
@@ -5322,7 +5371,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PTERABYTE
+	{
+		"MT_PTERABYTE",
 		-1,             // doomednum
 		S_PTERABYTE_FLY1, // spawnstate
 		1,              // spawnhealth
@@ -5349,7 +5399,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DRAGONBOMBER
+	{
+		"MT_DRAGONBOMBER",
 		137,            // doomednum
 		S_DRAGONBOMBER, // spawnstate
 		1,              // spawnhealth
@@ -5376,7 +5427,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DRAGONWING
+	{
+		"MT_DRAGONWING",
 		-1,             // doomednum
 		S_DRAGONWING1,  // spawnstate
 		1000,           // spawnhealth
@@ -5403,7 +5455,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DRAGONTAIL
+	{
+		"MT_DRAGONTAIL",
 		-1,             // doomednum
 		S_DRAGONTAIL_LOADED, // spawnstate
 		1000,           // spawnhealth
@@ -5430,7 +5483,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_DRAGONTAIL_EMPTY // raisestate
 	},
 
-	{           // MT_DRAGONMINE
+	{
+		"MT_DRAGONMINE",
 		-1,             // doomednum
 		S_DRAGONMINE,   // spawnstate
 		1,              // spawnhealth
@@ -5457,7 +5511,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BOSSEXPLODE
+	{
+		"MT_BOSSEXPLODE",
 		-1,             // doomednum
 		S_BOSSEXPLODE,  // spawnstate
 		1000,           // spawnhealth
@@ -5484,7 +5539,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SONIC3KBOSSEXPLODE
+	{
+		"MT_SONIC3KBOSSEXPLODE",
 		-1,                      // doomednum
 		S_SONIC3KBOSSEXPLOSION1, // spawnstate
 		1000,                    // spawnhealth
@@ -5511,7 +5567,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL                   // raisestate
 	},
 
-	{           // MT_BOSSFLYPOINT
+	{
+		"MT_BOSSFLYPOINT",
 		290,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -5538,7 +5595,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGTRAP
+	{
+		"MT_EGGTRAP",
 		291,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -5565,7 +5623,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BOSS3WAYPOINT
+	{
+		"MT_BOSS3WAYPOINT",
 		292,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -5592,7 +5651,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BOSS9GATHERPOINT
+	{
+		"MT_BOSS9GATHERPOINT",
 		293,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -5619,7 +5679,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BOSSJUNK
+	{
+		"MT_BOSSJUNK",
 		-1,             // doomednum
 		S_BOSSEGLZ1,    // spawnstate
 		1,              // spawnhealth
@@ -5646,7 +5707,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE
+	{
+		"MT_EGGMOBILE",
 		200,               // doomednum
 		S_EGGMOBILE_STND,  // spawnstate
 		8,                 // spawnhealth
@@ -5673,7 +5735,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EGGMOBILE_PANIC1 // raisestate
 	},
 
-	{           // MT_JETFUME1
+	{
+		"MT_JETFUME1",
 		-1,             // doomednum
 		S_JETFUME1,     // spawnstate
 		1000,           // spawnhealth
@@ -5700,7 +5763,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE_BALL
+	{
+		"MT_EGGMOBILE_BALL",
 		-1,             // doomednum
 		S_EGGMOBILE_BALL,// spawnstate
 		1,              // spawnhealth
@@ -5727,7 +5791,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE_TARGET
+	{
+		"MT_EGGMOBILE_TARGET",
 		-1,             // doomednum
 		S_EGGMOBILE_TARGET, // spawnstate
 		1,              // spawnhealth
@@ -5754,7 +5819,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE_FIRE
+	{
+		"MT_EGGMOBILE_FIRE",
 		-1,             // doomednum
 		S_LASERFLAME1,  // spawnstate
 		1,              // spawnhealth
@@ -5781,7 +5847,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE2
+	{
+		"MT_EGGMOBILE2",
 		201,               // doomednum
 		S_EGGMOBILE2_STND, // spawnstate
 		8,                 // spawnhealth
@@ -5808,7 +5875,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EGGMOBILE2_POGO1 // raisestate
 	},
 
-	{           // MT_EGGMOBILE2_POGO
+	{
+		"MT_EGGMOBILE2_POGO",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -5835,7 +5903,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EGGMOBILE2_POGO5 // raisestate
 	},
 
-	{           // MT_GOOP
+	{
+		"MT_GOOP",
 		-1,             // doomednum
 		S_GOOP1,        // spawnstate
 		1000,           // spawnhealth
@@ -5862,7 +5931,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GOOPTRAIL
+	{
+		"MT_GOOPTRAIL",
 		-1,             // doomednum
 		S_GOOPTRAIL,    // spawnstate
 		1000,           // spawnhealth
@@ -5889,7 +5959,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE3
+	{
+		"MT_EGGMOBILE3",
 		202,                // doomednum
 		S_EGGMOBILE3_STND,  // spawnstate
 		8,                  // spawnhealth
@@ -5916,7 +5987,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EGGMOBILE3_ROFL   // raisestate
 	},
 
-	{           // MT_FAKEMOBILE
+	{
+		"MT_FAKEMOBILE",
 		-1,                 // doomednum
 		S_FAKEMOBILE_INIT,  // spawnstate
 		1000,               // spawnhealth
@@ -5943,7 +6015,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL              // raisestate
 	},
 
-	{           // MT_SHOCKWAVE
+	{
+		"MT_SHOCKWAVE",
 		-1,             // doomednum
 		S_SHOCKWAVE1,   // spawnstate
 		1000,           // spawnhealth
@@ -5970,7 +6043,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMOBILE4
+	{
+		"MT_EGGMOBILE4",
 		203,               // doomednum
 		S_EGGMOBILE4_STND, // spawnstate
 		8,                 // spawnhealth
@@ -5997,7 +6071,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EGGMOBILE4_RAISE1// raisestate
 	},
 
-	{           // MT_EGGMOBILE4_MACE
+	{
+		"MT_EGGMOBILE4_MACE",
 		-1,             // doomednum
 		S_EGGMOBILE4_MACE, // spawnstate
 		1000,           // spawnhealth
@@ -6024,7 +6099,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_JETFLAME
+	{
+		"MT_JETFLAME",
 		-1,             // doomednum
 		S_JETFLAME,     // spawnstate
 		1000,           // spawnhealth
@@ -6051,7 +6127,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGROBO1
+	{
+		"MT_EGGROBO1",
 		1127,           // doomednum
 		S_EGGROBO1_STND,// spawnstate
 		1000,           // spawnhealth
@@ -6078,7 +6155,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGROBOJET
+	{
+		"MT_EGGROBOJET",
 		-1,             // doomednum
 		S_EGGROBOJET,   // spawnstate
 		1000,           // spawnhealth
@@ -6105,7 +6183,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FANG
+	{
+		"MT_FANG",
 		204,               // doomednum
 		S_FANG_SETUP,      // spawnstate
 		8,                 // spawnhealth
@@ -6132,7 +6211,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_BROKENROBOT
+	{
+		"MT_BROKENROBOT",
 		-1,             // doomednum
 		S_BROKENROBOTRANDOM, // spawnstate
 		1000,           // spawnhealth
@@ -6159,7 +6239,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_VWREF
+	{
+		"MT_VWREF",
 		-1,             // doomednum
 		S_VWREF,         // spawnstate
 		1,              // spawnhealth
@@ -6186,7 +6267,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_VWREB
+	{
+		"MT_VWREB",
 		-1,             // doomednum
 		S_VWREB,         // spawnstate
 		1,              // spawnhealth
@@ -6213,7 +6295,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PROJECTORLIGHT
+	{
+		"MT_PROJECTORLIGHT",
 		-1,             // doomednum
 		S_PROJECTORLIGHT1, // spawnstate
 		1,              // spawnhealth
@@ -6240,7 +6323,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FBOMB
+	{
+		"MT_FBOMB",
 		-1,                // doomednum
 		S_FBOMB1,          // spawnstate
 		1,                 // spawnhealth
@@ -6267,7 +6351,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_TNTDUST
+	{
+		"MT_TNTDUST",
 		-1,                // doomednum
 		S_TNTDUST_1,       // spawnstate
 		1,                 // spawnhealth
@@ -6293,7 +6378,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
 		S_NULL             // raisestate
 	},
-	{           // MT_FSGNA
+	{
+		"MT_FSGNA",
 		-1,                // doomednum
 		S_FSGNA,           // spawnstate
 		1,                 // spawnhealth
@@ -6320,7 +6406,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_FSGNB
+	{
+		"MT_FSGNB",
 		-1,                // doomednum
 		S_FSGNB,           // spawnstate
 		1,                 // spawnhealth
@@ -6347,7 +6434,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_FANGWAYPOINT
+	{
+		"MT_FANGWAYPOINT",
 		294,               // doomednum
 		S_INVISIBLE,       // spawnstate
 		1000,              // spawnhealth
@@ -6374,7 +6462,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_BLACKEGGMAN
+	{
+		"MT_BLACKEGGMAN",
 		206,               // doomednum
 		S_BLACKEGG_STND,   // spawnstate
 		8,                 // spawnhealth
@@ -6401,7 +6490,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BLACKEGG_JUMP1   // raisestate
 	},
 
-	{           // MT_BLACKEGGMAN_HELPER
+	{
+		"MT_BLACKEGGMAN_HELPER",
 		-1,                // doomednum
 		S_BLACKEGG_HELPER, // spawnstate
 		8,                 // spawnhealth
@@ -6428,7 +6518,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_BLACKEGGMAN_GOOPFIRE
+	{
+		"MT_BLACKEGGMAN_GOOPFIRE",
 		-1,             // doomednum
 		S_BLACKEGG_GOOP1, // spawnstate
 		1000,           // spawnhealth
@@ -6455,7 +6546,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLACKEGGMAN_MISSILE
+	{
+		"MT_BLACKEGGMAN_MISSILE",
 		-1,             // doomednum
 		S_BLACKEGG_MISSILE, // spawnstate
 		1000,           // spawnhealth
@@ -6482,7 +6574,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON
+	{
+		"MT_CYBRAKDEMON",
 		209,                // doomednum
 		S_CYBRAKDEMON_IDLE, // spawnstate
 		12,                 // spawnhealth
@@ -6509,7 +6602,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL              // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_ELECTRIC_BARRIER
+	{
+		"MT_CYBRAKDEMON_ELECTRIC_BARRIER",
 		-1,             // doomednum
 		S_CYBRAKDEMONELECTRICBARRIER_INIT1, // spawnstate
 		1000,           // spawnhealth
@@ -6536,7 +6630,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_MISSILE
+	{
+		"MT_CYBRAKDEMON_MISSILE",
 		-1,             // doomednum
 		S_CYBRAKDEMONMISSILE, // spawnstate
 		1000,           // spawnhealth
@@ -6563,7 +6658,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_FLAMESHOT
+	{
+		"MT_CYBRAKDEMON_FLAMESHOT",
 		-1,             // doomednum
 		S_CYBRAKDEMONFLAMESHOT_FLY1, // spawnstate
 		1000,           // spawnhealth
@@ -6590,7 +6686,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_FLAMEREST
+	{
+		"MT_CYBRAKDEMON_FLAMEREST",
 		-1,             // doomednum
 		S_CYBRAKDEMONFLAMEREST, // spawnstate
 		1000,           // spawnhealth
@@ -6617,7 +6714,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_TARGET_RETICULE
+	{
+		"MT_CYBRAKDEMON_TARGET_RETICULE",
 		-1,             // doomednum
 		S_CYBRAKDEMONTARGETRETICULE1, // spawnstate
 		1000,           // spawnhealth
@@ -6644,7 +6742,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_TARGET_DOT
+	{
+		"MT_CYBRAKDEMON_TARGET_DOT",
 		-1,             // doomednum
 		S_CYBRAKDEMONTARGETDOT, // spawnstate
 		1000,           // spawnhealth
@@ -6671,7 +6770,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_NAPALM_BOMB_LARGE
+	{
+		"MT_CYBRAKDEMON_NAPALM_BOMB_LARGE",
 		-1,             // doomednum
 		S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1, // spawnstate
 		1000,           // spawnhealth
@@ -6698,7 +6798,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_NAPALM_BOMB_SMALL
+	{
+		"MT_CYBRAKDEMON_NAPALM_BOMB_SMALL",
 		-1,             // doomednum
 		S_CYBRAKDEMONNAPALMBOMBSMALL, // spawnstate
 		1000,           // spawnhealth
@@ -6725,7 +6826,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_NAPALM_FLAMES
+	{
+		"MT_CYBRAKDEMON_NAPALM_FLAMES",
 		-1,             // doomednum
 		S_CYBRAKDEMONNAPALMFLAME_FLY1, // spawnstate
 		1000,           // spawnhealth
@@ -6752,7 +6854,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CYBRAKDEMON_VILE_EXPLOSION
+	{
+		"MT_CYBRAKDEMON_VILE_EXPLOSION",
 		-1,             // doomednum
 		S_CYBRAKDEMONVILEEXPLOSION1, // spawnstate
 		1,              // spawnhealth
@@ -6780,7 +6883,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 
-	{           // MT_METALSONIC_RACE
+	{
+		"MT_METALSONIC_RACE",
 		207,                // doomednum
 		S_METALSONIC_RACE,  // spawnstate
 		8,                  // spawnhealth
@@ -6807,7 +6911,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL              // raisestate
 	},
 
-	{           // MT_METALSONIC_BATTLE
+	{
+		"MT_METALSONIC_BATTLE",
 		208,                // doomednum
 		S_METALSONIC_FLOAT, // spawnstate
 		8,                  // spawnhealth
@@ -6834,7 +6939,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_METALSONIC_RAISE  // raisestate
 	},
 
-	{           // MT_MSSHIELD_FRONT
+	{
+		"MT_MSSHIELD_FRONT",
 		-1,             // doomednum
 		S_MSSHIELD_F1,  // spawnstate
 		1,              // spawnhealth
@@ -6861,7 +6967,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MSGATHER
+	{
+		"MT_MSGATHER",
 		-1,             // doomednum
 		S_JETFUME1,     // spawnstate
 		1,              // spawnhealth
@@ -6888,7 +6995,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RING
+	{
+		"MT_RING",
 		300,            // doomednum
 		S_RING,         // spawnstate
 		1000,           // spawnhealth
@@ -6915,7 +7023,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLINGRING
+	{
+		"MT_FLINGRING",
 		-1,             // doomednum
 		S_RING,         // spawnstate
 		1000,           // spawnhealth
@@ -6942,13 +7051,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUESPHERE
+	{
+		"MT_BLUESPHERE",
 		1706,           // doomednum
 		S_BLUESPHERE,   // spawnstate
 		1000,           // spawnhealth
 		S_NULL,         // seestate
 		sfx_None,       // seesound
-		MT_FLINGBLUESPHERE,        // reactiontime
+		MT_FLINGBLUESPHERE,  // reactiontime
 		sfx_None,       // attacksound
 		S_NULL,         // painstate
 		0,              // painchance
@@ -6969,7 +7079,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BLUESPHEREBONUS // raisestate
 	},
 
-	{           // MT_FLINGBLUESPHERE
+	{
+		"MT_FLINGBLUESPHERE",
 		-1,             // doomednum
 		S_BLUESPHERE,         // spawnstate
 		1000,           // spawnhealth
@@ -6996,7 +7107,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BLUESPHEREBONUS // raisestate
 	},
 
-	{           // MT_BOMBSPHERE
+	{
+		"MT_BOMBSPHERE",
 		520,            // doomednum
 		S_BOMBSPHERE1,  // spawnstate
 		1000,           // spawnhealth
@@ -7023,7 +7135,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDTEAMRING
+	{
+		"MT_REDTEAMRING",
 		308,            // doomednum
 		S_TEAMRING,     // spawnstate
 		1000,           // spawnhealth
@@ -7050,7 +7163,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUETEAMRING
+	{
+		"MT_BLUETEAMRING",
 		309,            // doomednum
 		S_TEAMRING,     // spawnstate
 		1000,           // spawnhealth
@@ -7077,7 +7191,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TOKEN
+	{
+		"MT_TOKEN",
 		312,            // doomednum
 		S_TOKEN,         // spawnstate
 		1000,           // spawnhealth
@@ -7104,7 +7219,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDFLAG
+	{
+		"MT_REDFLAG",
 		310,            // doomednum
 		S_REDFLAG,      // spawnstate
 		1000,           // spawnhealth
@@ -7131,7 +7247,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUEFLAG
+	{
+		"MT_BLUEFLAG",
 		311,            // doomednum
 		S_BLUEFLAG,     // spawnstate
 		1000,           // spawnhealth
@@ -7158,7 +7275,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EMBLEM
+	{
+		"MT_EMBLEM",
 		322,            // doomednum
 		S_EMBLEM1,      // spawnstate
 		1000,           // spawnhealth
@@ -7185,7 +7303,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EMERALD1
+	{
+		"MT_EMERALD1",
 		313,            // doomednum
 		S_CEMG1,        // spawnstate
 		1000,           // spawnhealth
@@ -7211,7 +7330,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD2
+	{
+		"MT_EMERALD2",
 		314,            // doomednum
 		S_CEMG2,        // spawnstate
 		1000,           // spawnhealth
@@ -7237,7 +7357,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD3
+	{
+		"MT_EMERALD3",
 		315,            // doomednum
 		S_CEMG3,        // spawnstate
 		1000,           // spawnhealth
@@ -7263,7 +7384,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD4
+	{
+		"MT_EMERALD4",
 		316,            // doomednum
 		S_CEMG4,        // spawnstate
 		1000,           // spawnhealth
@@ -7289,7 +7411,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD5
+	{
+		"MT_EMERALD5",
 		317,            // doomednum
 		S_CEMG5,        // spawnstate
 		1000,           // spawnhealth
@@ -7315,7 +7438,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD6
+	{
+		"MT_EMERALD6",
 		318,            // doomednum
 		S_CEMG6,        // spawnstate
 		1000,           // spawnhealth
@@ -7341,7 +7465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_NOGRAVITY|MF_SPECIAL, // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_EMERALD7
+	{
+		"MT_EMERALD7",
 		319,            // doomednum
 		S_CEMG7,        // spawnstate
 		1000,           // spawnhealth
@@ -7368,7 +7493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EMERHUNT
+	{
+		"MT_EMERHUNT",
 		320,            // doomednum
 		S_SHRD1,        // spawnstate
 		1000,           // spawnhealth
@@ -7395,7 +7521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EMERALDSPAWN
+	{
+		"MT_EMERALDSPAWN",
 		321,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -7422,7 +7549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLINGEMERALD
+	{
+		"MT_FLINGEMERALD",
 		-1,             // doomednum
 		S_CEMG1,        // spawnstate
 		1000,           // spawnhealth
@@ -7449,7 +7577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FAN
+	{
+		"MT_FAN",
 		540,            // doomednum
 		S_FAN,          // spawnstate
 		1000,           // spawnhealth
@@ -7476,7 +7605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STEAM
+	{
+		"MT_STEAM",
 		541,            // doomednum
 		S_STEAM1,       // spawnstate
 		1000,           // spawnhealth
@@ -7503,7 +7633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUMPER
+	{
+		"MT_BUMPER",
 		542,            // doomednum
 		S_BUMPER,       // spawnstate
 		1000,           // spawnhealth
@@ -7530,7 +7661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BUMPERHIT     // raisestate
 	},
 
-	{           // MT_BALLOON
+	{
+		"MT_BALLOON",
 		543,            // doomednum
 		S_BALLOON,      // spawnstate
 		1,              // spawnhealth
@@ -7557,7 +7689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BALLOONPOP1   // raisestate
 	},
 
-	{           // MT_YELLOWSPRING
+	{
+		"MT_YELLOWSPRING",
 		550,            // doomednum
 		S_YELLOWSPRING, // spawnstate
 		1000,           // spawnhealth
@@ -7584,7 +7717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_YELLOWSPRING2 // raisestate
 	},
 
-	{           // MT_REDSPRING
+	{
+		"MT_REDSPRING",
 		551,            // doomednum
 		S_REDSPRING,    // spawnstate
 		1000,           // spawnhealth
@@ -7611,7 +7745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_REDSPRING2    // raisestate
 	},
 
-	{           // MT_BLUESPRING
+	{
+		"MT_BLUESPRING",
 		552,            // doomednum
 		S_BLUESPRING,   // spawnstate
 		1000,           // spawnhealth
@@ -7638,7 +7773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BLUESPRING2   // raisestate
 	},
 
-	{           // MT_YELLOWDIAG
+	{
+		"MT_YELLOWDIAG",
 		555,            // doomednum
 		S_YDIAG1,       // spawnstate
 		1,              // spawnhealth
@@ -7665,7 +7801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_YDIAG2        // raisestate
 	},
 
-	{           // MT_REDDIAG
+	{
+		"MT_REDDIAG",
 		556,            // doomednum
 		S_RDIAG1,       // spawnstate
 		1,              // spawnhealth
@@ -7692,7 +7829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_RDIAG2        // raisestate
 	},
 
-	{           // MT_BLUEDIAG
+	{
+		"MT_BLUEDIAG",
 		557,            // doomednum
 		S_BDIAG1,       // spawnstate
 		1,              // spawnhealth
@@ -7719,7 +7857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BDIAG2        // raisestate
 	},
 
-	{           // MT_YELLOWHORIZ
+	{
+		"MT_YELLOWHORIZ",
 		558,            // doomednum
 		S_YHORIZ1,      // spawnstate
 		1,              // spawnhealth
@@ -7746,7 +7885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_YHORIZ2       // raisestate
 	},
 
-	{           // MT_REDHORIZ
+	{
+		"MT_REDHORIZ",
 		559,            // doomednum
 		S_RHORIZ1,      // spawnstate
 		1,              // spawnhealth
@@ -7773,7 +7913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_RHORIZ2       // raisestate
 	},
 
-	{           // MT_BLUEHORIZ
+	{
+		"MT_BLUEHORIZ",
 		560,            // doomednum
 		S_BHORIZ1,      // spawnstate
 		1,              // spawnhealth
@@ -7800,7 +7941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BHORIZ2       // raisestate
 	},
 
-	{          // MT_BOOSTERSEG
+	{
+		"MT_BOOSTERSEG",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -7827,7 +7969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_BOOSTERROLLER
+	{
+		"MT_BOOSTERROLLER",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -7854,7 +7997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_YELLOWBOOSTER
+	{
+		"MT_YELLOWBOOSTER",
 		544,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -7881,7 +8025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BOOSTERSOUND  // raisestate
 	},
 
-	{           // MT_REDBOOSTER
+	{
+		"MT_REDBOOSTER",
 		545,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -7908,7 +8053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BOOSTERSOUND  // raisestate
 	},
 
-	{           // MT_BUBBLES
+	{
+		"MT_BUBBLES",
 		500,            // doomednum
 		S_BUBBLES1,     // spawnstate
 		1000,           // spawnhealth
@@ -7935,7 +8081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SIGN
+	{
+		"MT_SIGN",
 		501,            // doomednum
 		S_SIGN,         // spawnstate
 		1000,           // spawnhealth
@@ -7962,7 +8109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_SIGNBOARD     // raisestate
 	},
 
-	{           // MT_SPIKEBALL
+	{
+		"MT_SPIKEBALL",
 		521,            // doomednum
 		S_SPIKEBALL1,   // spawnstate
 		1000,           // spawnhealth
@@ -7989,7 +8137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPINFIRE
+	{
+		"MT_SPINFIRE",
 		-1,             // doomednum
 		S_SPINFIRE1,    // spawnstate
 		1,              // spawnhealth
@@ -8016,7 +8165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPIKE
+	{
+		"MT_SPIKE",
 		523,            // doomednum
 		S_SPIKE1,       // spawnstate
 		1000,           // spawnhealth
@@ -8043,7 +8193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WALLSPIKE
+	{
+		"MT_WALLSPIKE",
 		522,            // doomednum
 		S_WALLSPIKE1,   // spawnstate
 		1000,           // spawnhealth
@@ -8070,7 +8221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WALLSPIKEBASE
+	{
+		"MT_WALLSPIKEBASE",
 		-1,            // doomednum
 		S_WALLSPIKEBASE, // spawnstate
 		1000,           // spawnhealth
@@ -8097,7 +8249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STARPOST
+	{
+		"MT_STARPOST",
 		502,            // doomednum
 		S_STARPOST_IDLE, // spawnstate
 		1,              // spawnhealth
@@ -8124,7 +8277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIGMINE
+	{
+		"MT_BIGMINE",
 		1012,           // doomednum
 		S_BIGMINE_IDLE, // spawnstate
 		1,              // spawnhealth
@@ -8151,7 +8305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLASTEXECUTOR
+	{
+		"MT_BLASTEXECUTOR",
 		756,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -8178,7 +8333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANNONLAUNCHER
+	{
+		"MT_CANNONLAUNCHER",
 		1123,           // doomednum
 		S_CANNONLAUNCHER1, // spawnstate
 		1,              // spawnhealth
@@ -8205,7 +8361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BOXSPARKLE
+	{
+		"MT_BOXSPARKLE",
 		-1,             // doomednum
 		S_BOXSPARKLE1,  // spawnstate
 		1,              // spawnhealth
@@ -8232,7 +8389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RING_BOX
+	{
+		"MT_RING_BOX",
 		400,            // doomednum
 		S_RING_BOX,     // spawnstate
 		1,              // spawnhealth
@@ -8259,7 +8417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PITY_BOX
+	{
+		"MT_PITY_BOX",
 		401,            // doomednum
 		S_PITY_BOX,     // spawnstate
 		1,              // spawnhealth
@@ -8286,7 +8445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ATTRACT_BOX
+	{
+		"MT_ATTRACT_BOX",
 		402,            // doomednum
 		S_ATTRACT_BOX,  // spawnstate
 		1,              // spawnhealth
@@ -8313,7 +8473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FORCE_BOX
+	{
+		"MT_FORCE_BOX",
 		403,            // doomednum
 		S_FORCE_BOX,    // spawnstate
 		1,              // spawnhealth
@@ -8340,7 +8501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARMAGEDDON_BOX
+	{
+		"MT_ARMAGEDDON_BOX",
 		404,            // doomednum
 		S_ARMAGEDDON_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8367,7 +8529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WHIRLWIND_BOX
+	{
+		"MT_WHIRLWIND_BOX",
 		405,            // doomednum
 		S_WHIRLWIND_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8394,7 +8557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ELEMENTAL_BOX
+	{
+		"MT_ELEMENTAL_BOX",
 		406,            // doomednum
 		S_ELEMENTAL_BOX,     // spawnstate
 		1,              // spawnhealth
@@ -8421,7 +8585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNEAKERS_BOX
+	{
+		"MT_SNEAKERS_BOX",
 		407,            // doomednum
 		S_SNEAKERS_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8448,7 +8613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_INVULN_BOX
+	{
+		"MT_INVULN_BOX",
 		408,            // doomednum
 		S_INVULN_BOX,   // spawnstate
 		1,              // spawnhealth
@@ -8475,7 +8641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_1UP_BOX
+	{
+		"MT_1UP_BOX",
 		409,            // doomednum
 		S_1UP_BOX,      // spawnstate
 		1,              // spawnhealth
@@ -8502,7 +8669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMAN_BOX
+	{
+		"MT_EGGMAN_BOX",
 		410,            // doomednum
 		S_EGGMAN_BOX,   // spawnstate
 		1,              // spawnhealth
@@ -8529,7 +8697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MIXUP_BOX
+	{
+		"MT_MIXUP_BOX",
 		411,            // doomednum
 		S_MIXUP_BOX,    // spawnstate
 		1,              // spawnhealth
@@ -8556,7 +8725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MYSTERY_BOX
+	{
+		"MT_MYSTERY_BOX",
 		-1, //412,      // doomednum
 		S_MYSTERY_BOX,  // spawnstate
 		1,              // spawnhealth
@@ -8583,7 +8753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GRAVITY_BOX
+	{
+		"MT_GRAVITY_BOX",
 		413,            // doomednum
 		S_GRAVITY_BOX,  // spawnstate
 		1,              // spawnhealth
@@ -8610,7 +8781,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RECYCLER_BOX
+	{
+		"MT_RECYCLER_BOX",
 		416,            // doomednum
 		S_RECYCLER_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8637,7 +8809,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCORE1K_BOX
+	{
+		"MT_SCORE1K_BOX",
 		418,            // doomednum
 		S_SCORE1K_BOX,  // spawnstate
 		1,              // spawnhealth
@@ -8664,7 +8837,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCORE10K_BOX
+	{
+		"MT_SCORE10K_BOX",
 		419,            // doomednum
 		S_SCORE10K_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8691,7 +8865,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEAURA_BOX
+	{
+		"MT_FLAMEAURA_BOX",
 		420,            // doomednum
 		S_FLAMEAURA_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8718,7 +8893,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUBBLEWRAP_BOX
+	{
+		"MT_BUBBLEWRAP_BOX",
 		421,            // doomednum
 		S_BUBBLEWRAP_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8739,13 +8915,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		40*FRACUNIT,    // height
 		0,              // display offset
 		100,            // mass
-		MT_BUBBLEWRAP_ICON, // damage
+		MT_BUBBLEWRAP_ICON,  // damage
 		sfx_None,       // activesound
 		MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THUNDERCOIN_BOX
+	{
+		"MT_THUNDERCOIN_BOX",
 		422,            // doomednum
 		S_THUNDERCOIN_BOX, // spawnstate
 		1,              // spawnhealth
@@ -8766,13 +8943,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		40*FRACUNIT,    // height
 		0,              // display offset
 		100,            // mass
-		MT_THUNDERCOIN_ICON, // damage
+		MT_THUNDERCOIN_ICON,  // damage
 		sfx_None,       // activesound
 		MF_SOLID|MF_SHOOTABLE|MF_MONITOR, // flags
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PITY_GOLDBOX
+	{
+		"MT_PITY_GOLDBOX",
 		431,            // doomednum
 		S_PITY_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8799,7 +8977,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ATTRACT_GOLDBOX
+	{
+		"MT_ATTRACT_GOLDBOX",
 		432,            // doomednum
 		S_ATTRACT_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8826,7 +9005,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FORCE_GOLDBOX
+	{
+		"MT_FORCE_GOLDBOX",
 		433,            // doomednum
 		S_FORCE_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8853,7 +9033,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARMAGEDDON_GOLDBOX
+	{
+		"MT_ARMAGEDDON_GOLDBOX",
 		434,            // doomednum
 		S_ARMAGEDDON_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8880,7 +9061,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WHIRLWIND_GOLDBOX
+	{
+		"MT_WHIRLWIND_GOLDBOX",
 		435,            // doomednum
 		S_WHIRLWIND_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8907,7 +9089,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ELEMENTAL_GOLDBOX
+	{
+		"MT_ELEMENTAL_GOLDBOX",
 		436,            // doomednum
 		S_ELEMENTAL_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8934,7 +9117,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNEAKERS_GOLDBOX
+	{
+		"MT_SNEAKERS_GOLDBOX",
 		437,            // doomednum
 		S_SNEAKERS_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8961,7 +9145,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_INVULN_GOLDBOX
+	{
+		"MT_INVULN_GOLDBOX",
 		438,            // doomednum
 		S_INVULN_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -8988,7 +9173,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMAN_GOLDBOX
+	{
+		"MT_EGGMAN_GOLDBOX",
 		440,            // doomednum
 		S_EGGMAN_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -9015,7 +9201,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GRAVITY_GOLDBOX
+	{
+		"MT_GRAVITY_GOLDBOX",
 		443,            // doomednum
 		S_GRAVITY_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -9042,7 +9229,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEAURA_GOLDBOX
+	{
+		"MT_FLAMEAURA_GOLDBOX",
 		450,            // doomednum
 		S_FLAMEAURA_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -9069,7 +9257,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUBBLEWRAP_GOLDBOX
+	{
+		"MT_BUBBLEWRAP_GOLDBOX",
 		451,            // doomednum
 		S_BUBBLEWRAP_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -9090,13 +9279,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		44*FRACUNIT,    // height
 		0,              // display offset
 		100,            // mass
-		MT_BUBBLEWRAP_ICON, // damage
+		MT_BUBBLEWRAP_ICON,  // damage
 		sfx_None,       // activesound
 		MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THUNDERCOIN_GOLDBOX
+	{
+		"MT_THUNDERCOIN_GOLDBOX",
 		452,            // doomednum
 		S_THUNDERCOIN_GOLDBOX, // spawnstate
 		1,              // spawnhealth
@@ -9117,13 +9307,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		44*FRACUNIT,    // height
 		0,              // display offset
 		100,            // mass
-		MT_THUNDERCOIN_ICON, // damage
+		MT_THUNDERCOIN_ICON,  // damage
 		sfx_None,       // activesound
 		MF_SOLID|MF_SHOOTABLE|MF_MONITOR|MF_GRENADEBOUNCE, // flags
 		S_NULL          // raisestate
 	},
 
-	{  		   // MT_RING_REDBOX
+	{  		
+		"MT_RING_REDBOX",
 		414,            // doomednum
 		S_RING_REDBOX1, // spawnstate
 		1,              // spawnhealth
@@ -9150,7 +9341,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RING_BLUEBOX
+	{
+		"MT_RING_BLUEBOX",
 		415,            // doomednum
 		S_RING_BLUEBOX1, // spawnstate
 		1,              // spawnhealth
@@ -9177,7 +9369,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RING_ICON
+	{
+		"MT_RING_ICON",
 		-1,              // doomednum
 		S_RING_ICON1,    // spawnstate
 		1,               // spawnhealth
@@ -9204,7 +9397,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL           // raisestate
 	},
 
-	{           // MT_PITY_ICON
+	{
+		"MT_PITY_ICON",
 		-1,             // doomednum
 		S_PITY_ICON1,   // spawnstate
 		1,              // spawnhealth
@@ -9231,7 +9425,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ATTRACT_ICON
+	{
+		"MT_ATTRACT_ICON",
 		-1,             // doomednum
 		S_ATTRACT_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9258,7 +9453,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FORCE_ICON
+	{
+		"MT_FORCE_ICON",
 		-1,             // doomednum
 		S_FORCE_ICON1,  // spawnstate
 		1,              // spawnhealth
@@ -9285,7 +9481,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARMAGEDDON_ICON
+	{
+		"MT_ARMAGEDDON_ICON",
 		-1,             // doomednum
 		S_ARMAGEDDON_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9312,7 +9509,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WHIRLWIND_ICON
+	{
+		"MT_WHIRLWIND_ICON",
 		-1,             // doomednum
 		S_WHIRLWIND_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9339,7 +9537,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ELEMENTAL_ICON
+	{
+		"MT_ELEMENTAL_ICON",
 		-1,             // doomednum
 		S_ELEMENTAL_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9366,7 +9565,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNEAKERS_ICON
+	{
+		"MT_SNEAKERS_ICON",
 		-1,             // doomednum
 		S_SNEAKERS_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9393,7 +9593,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_INVULN_ICON
+	{
+		"MT_INVULN_ICON",
 		-1,             // doomednum
 		S_INVULN_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9420,7 +9621,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_1UP_ICON
+	{
+		"MT_1UP_ICON",
 		-1,             // doomednum
 		S_1UP_ICON1,    // spawnstate
 		1,              // spawnhealth
@@ -9447,7 +9649,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGMAN_ICON
+	{
+		"MT_EGGMAN_ICON",
 		-1,             // doomednum
 		S_EGGMAN_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9474,7 +9677,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MIXUP_ICON
+	{
+		"MT_MIXUP_ICON",
 		-1,             // doomednum
 		S_MIXUP_ICON1,  // spawnstate
 		1,              // spawnhealth
@@ -9501,7 +9705,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GRAVITY_ICON
+	{
+		"MT_GRAVITY_ICON",
 		-1,             // doomednum
 		S_GRAVITY_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9528,7 +9733,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RECYCLER_ICON
+	{
+		"MT_RECYCLER_ICON",
 		-1,             // doomednum
 		S_RECYCLER_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9555,7 +9761,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCORE1K_ICON
+	{
+		"MT_SCORE1K_ICON",
 		-1,             // doomednum
 		S_SCORE1K_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9582,7 +9789,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCORE10K_ICON
+	{
+		"MT_SCORE10K_ICON",
 		-1,             // doomednum
 		S_SCORE10K_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9609,7 +9817,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEAURA_ICON
+	{
+		"MT_FLAMEAURA_ICON",
 		-1,             // doomednum
 		S_FLAMEAURA_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9636,7 +9845,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUBBLEWRAP_ICON
+	{
+		"MT_BUBBLEWRAP_ICON",
 		-1,             // doomednum
 		S_BUBBLEWRAP_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9663,7 +9873,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THUNDERCOIN_ICON
+	{
+		"MT_THUNDERCOIN_ICON",
 		-1,             // doomednum
 		S_THUNDERCOIN_ICON1, // spawnstate
 		1,              // spawnhealth
@@ -9690,7 +9901,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKET
+	{
+		"MT_ROCKET",
 		-1,             // doomednum
 		S_ROCKET,       // spawnstate
 		1000,           // spawnhealth
@@ -9717,7 +9929,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LASER
+	{
+		"MT_LASER",
 		-1,             // doomednum
 		S_LASER,        // spawnstate
 		1000,           // spawnhealth
@@ -9744,7 +9957,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TORPEDO
+	{
+		"MT_TORPEDO",
 		-1,             // doomednum
 		S_TORPEDO,      // spawnstate
 		1000,           // spawnhealth
@@ -9771,7 +9985,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TORPEDO2
+	{
+		"MT_TORPEDO2",
 		-1,             // doomednum
 		S_TORPEDO,      // spawnstate
 		1000,           // spawnhealth
@@ -9798,7 +10013,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ENERGYBALL
+	{
+		"MT_ENERGYBALL",
 		-1,             // doomednum
 		S_ENERGYBALL1,  // spawnstate
 		1000,           // spawnhealth
@@ -9825,7 +10041,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MINE
+	{
+		"MT_MINE",
 		-1,             // doomednum
 		S_MINE1,        // spawnstate
 		1,              // spawnhealth
@@ -9852,7 +10069,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_JETTBULLET
+	{
+		"MT_JETTBULLET",
 		-1,             // doomednum
 		S_JETBULLET1,   // spawnstate
 		1,              // spawnhealth
@@ -9879,7 +10097,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TURRETLASER
+	{
+		"MT_TURRETLASER",
 		-1,             // doomednum
 		S_TURRETLASER,  // spawnstate
 		1000,           // spawnhealth
@@ -9906,7 +10125,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANNONBALL
+	{
+		"MT_CANNONBALL",
 		-1,             // doomednum
 		S_CANNONBALL1,  // spawnstate
 		1,              // spawnhealth
@@ -9933,7 +10153,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANNONBALLDECOR
+	{
+		"MT_CANNONBALLDECOR",
 		1124,           // doomednum
 		S_CANNONBALL1,  // spawnstate
 		1,              // spawnhealth
@@ -9960,7 +10181,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARROW
+	{
+		"MT_ARROW",
 		-1,             // doomednum
 		S_ARROW,        // spawnstate
 		1,              // spawnhealth
@@ -9987,7 +10209,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DEMONFIRE
+	{
+		"MT_DEMONFIRE",
 		-1,             // doomednum
 		S_DEMONFIRE,    // spawnstate
 		1,              // spawnhealth
@@ -10014,7 +10237,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LETTER
+	{
+		"MT_LETTER",
 		-1,             // doomednum
 		S_LETTER,       // spawnstate
 		1,              // spawnhealth
@@ -10041,7 +10265,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TUTORIALPLANT
+	{
+		"MT_TUTORIALPLANT",
 		799,            // doomednum
 		S_NULL,         // spawnstate
 		1000,           // spawnhealth
@@ -10068,7 +10293,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TUTORIALLEAF
+	{
+		"MT_TUTORIALLEAF",
 		-1,            // doomednum
 		S_TUTORIALLEAF1,   // spawnstate
 		1000,           // spawnhealth
@@ -10095,7 +10321,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TUTORIALFLOWER
+	{
+		"MT_TUTORIALFLOWER",
 		-1,            // doomednum
 		S_TUTORIALFLOWER1,   // spawnstate
 		1000,           // spawnhealth
@@ -10122,7 +10349,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TUTORIALFLOWERF
+	{
+		"MT_TUTORIALFLOWERF",
 		-1,            // doomednum
 		S_TUTORIALFLOWERF1,   // spawnstate
 		1000,           // spawnhealth
@@ -10149,7 +10377,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZFLOWER1
+	{
+		"MT_GFZFLOWER1",
 		800,            // doomednum
 		S_GFZFLOWERA,   // spawnstate
 		1000,           // spawnhealth
@@ -10176,7 +10405,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZFLOWER2
+	{
+		"MT_GFZFLOWER2",
 		801,            // doomednum
 		S_GFZFLOWERB,  // spawnstate
 		1000,           // spawnhealth
@@ -10203,7 +10433,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZFLOWER3
+	{
+		"MT_GFZFLOWER3",
 		802,            // doomednum
 		S_GFZFLOWERC,  // spawnstate
 		1000,           // spawnhealth
@@ -10230,7 +10461,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUEBERRYBUSH
+	{
+		"MT_BLUEBERRYBUSH",
 		803,            // doomednum
 		S_BLUEBERRYBUSH, // spawnstate
 		1000,           // spawnhealth
@@ -10257,7 +10489,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BERRYBUSH
+	{
+		"MT_BERRYBUSH",
 		804,            // doomednum
 		S_BERRYBUSH,    // spawnstate
 		1000,           // spawnhealth
@@ -10284,7 +10517,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUSH
+	{
+		"MT_BUSH",
 		805,            // doomednum
 		S_BUSH,         // spawnstate
 		1000,           // spawnhealth
@@ -10311,7 +10545,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZTREE
+	{
+		"MT_GFZTREE",
 		806,            // doomednum
 		S_GFZTREE,      // spawnstate
 		1000,           // spawnhealth
@@ -10338,7 +10573,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZBERRYTREE
+	{
+		"MT_GFZBERRYTREE",
 		807,            // doomednum
 		S_GFZBERRYTREE, // spawnstate
 		1000,           // spawnhealth
@@ -10365,7 +10601,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZCHERRYTREE
+	{
+		"MT_GFZCHERRYTREE",
 		808,            // doomednum
 		S_GFZCHERRYTREE, // spawnstate
 		1000,           // spawnhealth
@@ -10392,7 +10629,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CHECKERTREE
+	{
+		"MT_CHECKERTREE",
 		809,            // doomednum
 		S_CHECKERTREE,  // spawnstate
 		1000,           // spawnhealth
@@ -10419,7 +10657,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CHECKERSUNSETTREE
+	{
+		"MT_CHECKERSUNSETTREE",
 		810,            // doomednum
 		S_CHECKERSUNSETTREE, // spawnstate
 		1000,           // spawnhealth
@@ -10446,7 +10685,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FHZTREE
+	{
+		"MT_FHZTREE",
 		2102,           // doomednum
 		S_FHZTREE,      // spawnstate
 		1000,           // spawnhealth
@@ -10473,7 +10713,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FHZPINKTREE
+	{
+		"MT_FHZPINKTREE",
 		2103,           // doomednum
 		S_FHZPINKTREE,  // spawnstate
 		1000,           // spawnhealth
@@ -10500,7 +10741,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POLYGONTREE
+	{
+		"MT_POLYGONTREE",
 		811,            // doomednum
 		S_POLYGONTREE,  // spawnstate
 		1000,           // spawnhealth
@@ -10527,7 +10769,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUSHTREE
+	{
+		"MT_BUSHTREE",
 		812,            // doomednum
 		S_BUSHTREE,     // spawnstate
 		1000,           // spawnhealth
@@ -10554,7 +10797,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUSHREDTREE
+	{
+		"MT_BUSHREDTREE",
 		813,            // doomednum
 		S_BUSHREDTREE,  // spawnstate
 		1000,           // spawnhealth
@@ -10581,7 +10825,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPRINGTREE
+	{
+		"MT_SPRINGTREE",
 		1600,           // doomednum
 		S_SPRINGTREE,   // spawnstate
 		1000,           // spawnhealth
@@ -10608,7 +10853,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THZFLOWER1
+	{
+		"MT_THZFLOWER1",
 		900,            // doomednum
 		S_THZFLOWERA,    // spawnstate
 		1000,           // spawnhealth
@@ -10635,7 +10881,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THZFLOWER2
+	{
+		"MT_THZFLOWER2",
 		902,            // doomednum
 		S_THZFLOWERB,    // spawnstate
 		1000,           // spawnhealth
@@ -10662,7 +10909,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THZFLOWER3
+	{
+		"MT_THZFLOWER3",
 		903,            // doomednum
 		S_THZFLOWERC,    // spawnstate
 		1000,           // spawnhealth
@@ -10689,7 +10937,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THZTREE
+	{
+		"MT_THZTREE",
 		904,            // doomednum
 		S_THZTREE,      // spawnstate
 		1000,           // spawnhealth
@@ -10716,7 +10965,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THZTREEBRANCH
+	{
+		"MT_THZTREEBRANCH",
 		-1,             // doomednum
 		S_THZTREEBRANCH1, // spawnstate
 		1000,           // spawnhealth
@@ -10743,7 +10993,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ALARM
+	{
+		"MT_ALARM",
 		901,            // doomednum
 		S_ALARM1,       // spawnstate
 		1000,           // spawnhealth
@@ -10770,7 +11021,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GARGOYLE
+	{
+		"MT_GARGOYLE",
 		1000,           // doomednum
 		S_GARGOYLE,     // spawnstate
 		1000,           // spawnhealth
@@ -10797,7 +11049,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIGGARGOYLE
+	{
+		"MT_BIGGARGOYLE",
 		1009,           // doomednum
 		S_BIGGARGOYLE,  // spawnstate
 		1000,           // spawnhealth
@@ -10824,7 +11077,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SEAWEED
+	{
+		"MT_SEAWEED",
 		1001,           // doomednum
 		S_SEAWEED1,     // spawnstate
 		1000,           // spawnhealth
@@ -10851,7 +11105,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WATERDRIP
+	{
+		"MT_WATERDRIP",
 		1002,           // doomednum
 		S_DRIPA1,       // spawnstate
 		1000,           // spawnhealth
@@ -10878,7 +11133,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WATERDROP
+	{
+		"MT_WATERDROP",
 		-1,             // doomednum
 		S_DRIPB1,       // spawnstate
 		1000,           // spawnhealth
@@ -10905,7 +11161,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORAL1
+	{
+		"MT_CORAL1",
 		1003,           // doomednum
 		S_CORAL1,       // spawnstate
 		1000,           // spawnhealth
@@ -10932,7 +11189,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORAL2
+	{
+		"MT_CORAL2",
 		1004,           // doomednum
 		S_CORAL2,       // spawnstate
 		1000,           // spawnhealth
@@ -10959,7 +11217,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORAL3
+	{
+		"MT_CORAL3",
 		1005,           // doomednum
 		S_CORAL3,       // spawnstate
 		1000,           // spawnhealth
@@ -10986,7 +11245,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORAL4
+	{
+		"MT_CORAL4",
 		1014,           // doomednum
 		S_CORAL4,       // spawnstate
 		1000,           // spawnhealth
@@ -11013,7 +11273,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORAL5
+	{
+		"MT_CORAL5",
 		1015,           // doomednum
 		S_CORAL5,       // spawnstate
 		1000,           // spawnhealth
@@ -11040,7 +11301,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUECRYSTAL
+	{
+		"MT_BLUECRYSTAL",
 		1006,           // doomednum
 		S_BLUECRYSTAL1, // spawnstate
 		1000,           // spawnhealth
@@ -11067,7 +11329,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_KELP
+	{
+		"MT_KELP",
 		1007,           // doomednum
 		S_KELP,         // spawnstate
 		1000,           // spawnhealth
@@ -11094,7 +11357,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ANIMALGAETOP
+	{
+		"MT_ANIMALGAETOP",
 		1013,            // doomednum
 		S_ANIMALGAETOP1, // spawnstate
 		1000,            // spawnhealth
@@ -11121,7 +11385,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ANIMALGAESEG
+	{
+		"MT_ANIMALGAESEG",
 		-1,             // doomednum
 		S_ANIMALGAESEG, // spawnstate
 		1000,           // spawnhealth
@@ -11148,7 +11413,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DSZSTALAGMITE
+	{
+		"MT_DSZSTALAGMITE",
 		1008,           // doomednum
 		S_DSZSTALAGMITE,// spawnstate
 		1000,           // spawnhealth
@@ -11175,7 +11441,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DSZ2STALAGMITE
+	{
+		"MT_DSZ2STALAGMITE",
 		1011,           // doomednum
 		S_DSZ2STALAGMITE, // spawnstate
 		1000,           // spawnhealth
@@ -11202,7 +11469,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LIGHTBEAM
+	{
+		"MT_LIGHTBEAM",
 		1010,           // doomednum
 		S_LIGHTBEAM1,   // spawnstate
 		1000,           // spawnhealth
@@ -11229,7 +11497,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CHAIN
+	{
+		"MT_CHAIN",
 		1100,           // doomednum
 		S_CEZCHAIN,     // spawnstate
 		1000,           // spawnhealth
@@ -11256,7 +11525,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAME
+	{
+		"MT_FLAME",
 		1101,           // doomednum
 		S_FLAME,        // spawnstate
 		1000,           // spawnhealth
@@ -11265,7 +11535,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		8,              // reactiontime
 		sfx_None,       // attacksound
 		S_NULL,         // painstate
-		MT_FLAMEPARTICLE, // painchance
+		MT_FLAMEPARTICLE,  // painchance
 		sfx_None,       // painsound
 		S_NULL,         // meleestate
 		S_NULL,         // missilestate
@@ -11283,7 +11553,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEPARTICLE
+	{
+		"MT_FLAMEPARTICLE",
 		-1,             // doomednum
 		S_FLAMEPARTICLE,// spawnstate
 		1000,           // spawnhealth
@@ -11310,7 +11581,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGSTATUE
+	{
+		"MT_EGGSTATUE",
 		1102,           // doomednum
 		S_EGGSTATUE1,   // spawnstate
 		1000,           // spawnhealth
@@ -11337,7 +11609,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MACEPOINT
+	{
+		"MT_MACEPOINT",
 		1104,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11364,7 +11637,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CHAINMACEPOINT
+	{
+		"MT_CHAINMACEPOINT",
 		1105,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11391,7 +11665,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPRINGBALLPOINT
+	{
+		"MT_SPRINGBALLPOINT",
 		1106,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11418,7 +11693,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CHAINPOINT
+	{
+		"MT_CHAINPOINT",
 		1107,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11445,7 +11721,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HIDDEN_SLING
+	{
+		"MT_HIDDEN_SLING",
 		1108,           // doomednum
 		S_SLING1,       // spawnstate
 		1000,           // spawnhealth
@@ -11472,7 +11749,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FIREBARPOINT
+	{
+		"MT_FIREBARPOINT",
 		1109,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11499,7 +11777,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CUSTOMMACEPOINT
+	{
+		"MT_CUSTOMMACEPOINT",
 		1110,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -11526,7 +11805,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_SMALLMACECHAIN
+	{
+		"MT_SMALLMACECHAIN",
 		-1,               // doomednum
 		S_SMALLMACECHAIN, // spawnstate
 		1000,             // spawnhealth
@@ -11553,7 +11833,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL            // raisestate
 	},
 
-	{            // MT_BIGMACECHAIN
+	{
+		"MT_BIGMACECHAIN",
 		-1,             // doomednum
 		S_BIGMACECHAIN,	// spawnstate
 		1000,           // spawnhealth
@@ -11580,7 +11861,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_SMALLMACE
+	{
+		"MT_SMALLMACE",
 		1130,           // doomednum
 		S_SMALLMACE,    // spawnstate
 		1000,           // spawnhealth
@@ -11607,7 +11889,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_BIGMACE
+	{
+		"MT_BIGMACE",
 		1131,           // doomednum
 		S_BIGMACE,      // spawnstate
 		1000,           // spawnhealth
@@ -11634,7 +11917,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_SMALLGRABCHAIN
+	{
+		"MT_SMALLGRABCHAIN",
 		-1,               // doomednum
 		S_SMALLGRABCHAIN, // spawnstate
 		1000,             // spawnhealth
@@ -11661,7 +11945,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL            // raisestate
 	},
 
-	{            // MT_BIGGRABCHAIN
+	{
+		"MT_BIGGRABCHAIN",
 		-1,             // doomednum
 		S_BIGGRABCHAIN, // spawnstate
 		1000,           // spawnhealth
@@ -11688,7 +11973,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_BLUESPRINGBALL
+	{
+		"MT_BLUESPRINGBALL",
 		1133,           // doomednum
 		S_BLUESPRINGBALL, // spawnstate
 		1000,           // spawnhealth
@@ -11715,7 +12001,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BLUESPRINGBALL2 // raisestate
 	},
 
-	{            // MT_YELLOWSPRINGBALL
+	{
+		"MT_YELLOWSPRINGBALL",
 		1134,           // doomednum
 		S_YELLOWSPRINGBALL, // spawnstate
 		1000,           // spawnhealth
@@ -11742,7 +12029,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_YELLOWSPRINGBALL2 // raisestate
 	},
 
-	{            // MT_REDSPRINGBALL
+	{
+		"MT_REDSPRINGBALL",
 		1135,           // doomednum
 		S_REDSPRINGBALL, // spawnstate
 		1000,           // spawnhealth
@@ -11769,7 +12057,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_REDSPRINGBALL2 // raisestate
 	},
 
-	{            // MT_SMALLFIREBAR
+	{
+		"MT_SMALLFIREBAR",
 		1136,           // doomednum
 		S_SMALLFIREBAR1,     // spawnstate
 		1000,           // spawnhealth
@@ -11796,7 +12085,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{            // MT_BIGFIREBAR
+	{
+		"MT_BIGFIREBAR",
 		1137,           // doomednum
 		S_BIGFIREBAR1,  // spawnstate
 		1000,           // spawnhealth
@@ -11823,7 +12113,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZFLOWER
+	{
+		"MT_CEZFLOWER",
 		1103,           // doomednum
 		S_CEZFLOWER,    // spawnstate
 		1000,           // spawnhealth
@@ -11850,7 +12141,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZPOLE1
+	{
+		"MT_CEZPOLE1",
 		1117,           // doomednum
 		S_CEZPOLE,      // spawnstate
 		1000,           // spawnhealth
@@ -11877,7 +12169,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZPOLE2
+	{
+		"MT_CEZPOLE2",
 		1118,           // doomednum
 		S_CEZPOLE,      // spawnstate
 		1000,           // spawnhealth
@@ -11904,7 +12197,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZBANNER1
+	{
+		"MT_CEZBANNER1",
 		-1,             // doomednum
 		S_CEZBANNER1,    // spawnstate
 		1000,           // spawnhealth
@@ -11931,7 +12225,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZBANNER2
+	{
+		"MT_CEZBANNER2",
 		-1,             // doomednum
 		S_CEZBANNER2,    // spawnstate
 		1000,           // spawnhealth
@@ -11958,7 +12253,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PINETREE
+	{
+		"MT_PINETREE",
 		1114,           // doomednum
 		S_PINETREE,     // spawnstate
 		1000,           // spawnhealth
@@ -11985,7 +12281,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZBUSH1
+	{
+		"MT_CEZBUSH1",
 		1115,           // doomednum
 		S_CEZBUSH1,     // spawnstate
 		1000,           // spawnhealth
@@ -12012,7 +12309,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CEZBUSH2
+	{
+		"MT_CEZBUSH2",
 		1116,           // doomednum
 		S_CEZBUSH2,     // spawnstate
 		1000,           // spawnhealth
@@ -12039,7 +12337,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANDLE
+	{
+		"MT_CANDLE",
 		1119,           // doomednum
 		S_CANDLE,       // spawnstate
 		1000,           // spawnhealth
@@ -12066,7 +12365,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANDLEPRICKET
+	{
+		"MT_CANDLEPRICKET",
 		1120,           // doomednum
 		S_CANDLEPRICKET, // spawnstate
 		1000,           // spawnhealth
@@ -12093,7 +12393,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEHOLDER
+	{
+		"MT_FLAMEHOLDER",
 		1121,           // doomednum
 		S_FLAMEHOLDER,  // spawnstate
 		1000,           // spawnhealth
@@ -12120,7 +12421,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FIRETORCH
+	{
+		"MT_FIRETORCH",
 		1122,           // doomednum
 		S_FIRETORCH,    // spawnstate
 		1000,           // spawnhealth
@@ -12147,7 +12449,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WAVINGFLAG1
+	{
+		"MT_WAVINGFLAG1",
 		1128,           // doomednum
 		S_WAVINGFLAG,   // spawnstate
 		1000,           // spawnhealth
@@ -12174,7 +12477,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WAVINGFLAG2
+	{
+		"MT_WAVINGFLAG2",
 		1129,           // doomednum
 		S_WAVINGFLAG,   // spawnstate
 		1000,           // spawnhealth
@@ -12201,7 +12505,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WAVINGFLAGSEG1
+	{
+		"MT_WAVINGFLAGSEG1",
 		-1,             // doomednum
 		S_WAVINGFLAGSEG1, // spawnstate
 		1000,           // spawnhealth
@@ -12228,7 +12533,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WAVINGFLAGSEG2
+	{
+		"MT_WAVINGFLAGSEG2",
 		-1,             // doomednum
 		S_WAVINGFLAGSEG2, // spawnstate
 		1000,           // spawnhealth
@@ -12255,7 +12561,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CRAWLASTATUE
+	{
+		"MT_CRAWLASTATUE",
 		1111,           // doomednum
 		S_CRAWLASTATUE, // spawnstate
 		1000,           // spawnhealth
@@ -12282,7 +12589,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FACESTABBERSTATUE
+	{
+		"MT_FACESTABBERSTATUE",
 		1112,           // doomednum
 		S_FACESTABBERSTATUE, // spawnstate
 		1000,           // spawnhealth
@@ -12309,7 +12617,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SUSPICIOUSFACESTABBERSTATUE
+	{
+		"MT_SUSPICIOUSFACESTABBERSTATUE",
 		1113,           // doomednum
 		S_SUSPICIOUSFACESTABBERSTATUE_WAIT, // spawnstate
 		1000,           // spawnhealth
@@ -12336,7 +12645,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_ROCKCRUMBLE3// raisestate
 	},
 
-	{           // MT_BRAMBLES
+	{
+		"MT_BRAMBLES",
 		1125,           // doomednum
 		S_BRAMBLES,     // spawnstate
 		1000,           // spawnhealth
@@ -12363,7 +12673,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIGTUMBLEWEED
+	{
+		"MT_BIGTUMBLEWEED",
 		1200,           // doomednum
 		S_BIGTUMBLEWEED,// spawnstate
 		1000,           // spawnhealth
@@ -12390,7 +12701,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LITTLETUMBLEWEED
+	{
+		"MT_LITTLETUMBLEWEED",
 		1201,           // doomednum
 		S_LITTLETUMBLEWEED,// spawnstate
 		1000,           // spawnhealth
@@ -12417,7 +12729,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI1
+	{
+		"MT_CACTI1",
 		1203,           // doomednum
 		S_CACTI1,       // spawnstate
 		1000,           // spawnhealth
@@ -12444,7 +12757,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI2
+	{
+		"MT_CACTI2",
 		1204,           // doomednum
 		S_CACTI2,       // spawnstate
 		1000,           // spawnhealth
@@ -12471,7 +12785,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI3
+	{
+		"MT_CACTI3",
 		1205,           // doomednum
 		S_CACTI3,       // spawnstate
 		1000,           // spawnhealth
@@ -12498,7 +12813,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI4
+	{
+		"MT_CACTI4",
 		1206,           // doomednum
 		S_CACTI4,       // spawnstate
 		1000,           // spawnhealth
@@ -12525,7 +12841,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI5
+	{
+		"MT_CACTI5",
 		1207,           // doomednum
 		S_CACTI5,       // spawnstate
 		1000,           // spawnhealth
@@ -12552,7 +12869,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI6
+	{
+		"MT_CACTI6",
 		1208,           // doomednum
 		S_CACTI6,       // spawnstate
 		1000,           // spawnhealth
@@ -12579,7 +12897,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI7
+	{
+		"MT_CACTI7",
 		1209,           // doomednum
 		S_CACTI7,       // spawnstate
 		1000,           // spawnhealth
@@ -12606,7 +12925,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI8
+	{
+		"MT_CACTI8",
 		1210,           // doomednum
 		S_CACTI8,       // spawnstate
 		1000,           // spawnhealth
@@ -12633,7 +12953,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI9
+	{
+		"MT_CACTI9",
 		1211,           // doomednum
 		S_CACTI9,       // spawnstate
 		1000,           // spawnhealth
@@ -12660,7 +12981,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI10
+	{
+		"MT_CACTI10",
 		1230,           // doomednum
 		S_CACTI10,       // spawnstate
 		1000,           // spawnhealth
@@ -12687,7 +13009,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTI11
+	{
+		"MT_CACTI11",
 		1231,           // doomednum
 		S_CACTI11,       // spawnstate
 		1000,           // spawnhealth
@@ -12714,7 +13037,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTITINYSEG
+	{
+		"MT_CACTITINYSEG",
 		-1,             // doomednum
 		S_CACTITINYSEG, // spawnstate
 		1000,           // spawnhealth
@@ -12741,7 +13065,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACTISMALLSEG
+	{
+		"MT_CACTISMALLSEG",
 		-1,              // doomednum
 		S_CACTISMALLSEG, // spawnstate
 		1000,            // spawnhealth
@@ -12768,7 +13093,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARIDSIGN_CAUTION
+	{
+		"MT_ARIDSIGN_CAUTION",
 		1212,           // doomednum
 		S_ARIDSIGN_CAUTION,       // spawnstate
 		1000,           // spawnhealth
@@ -12795,7 +13121,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARIDSIGN_CACTI
+	{
+		"MT_ARIDSIGN_CACTI",
 		1213,           // doomednum
 		S_ARIDSIGN_CACTI,       // spawnstate
 		1000,           // spawnhealth
@@ -12822,7 +13149,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ARIDSIGN_SHARPTURN
+	{
+		"MT_ARIDSIGN_SHARPTURN",
 		1214,           // doomednum
 		S_ARIDSIGN_SHARPTURN,       // spawnstate
 		1000,           // spawnhealth
@@ -12849,7 +13177,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_OILLAMP
+	{
+		"MT_OILLAMP",
 		1215,           // doomednum
 		S_OILLAMP,      // spawnstate
 		1,              // spawnhealth
@@ -12876,7 +13205,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TNTBARREL
+	{
+		"MT_TNTBARREL",
 		1216,           // doomednum
 		S_TNTBARREL_STND1,      // spawnstate
 		1,              // spawnhealth
@@ -12903,7 +13233,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PROXIMITYTNT
+	{
+		"MT_PROXIMITYTNT",
 		1217,           // doomednum
 		S_PROXIMITY_TNT,    // spawnstate
 		1,              // spawnhealth
@@ -12930,7 +13261,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DUSTDEVIL
+	{
+		"MT_DUSTDEVIL",
 		1218,           // doomednum
 		S_DUSTDEVIL,    // spawnstate
 		1,              // spawnhealth
@@ -12957,7 +13289,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DUSTLAYER
+	{
+		"MT_DUSTLAYER",
 		-1,             // doomednum
 		S_DUSTLAYER1,   // spawnstate
 		1,              // spawnhealth
@@ -12984,7 +13317,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_ARIDDUST
+	{
+		"MT_ARIDDUST",
 		-1,             // doomednum
 		S_ARIDDUST1,    // spawnstate
 		1,              // spawnhealth
@@ -13011,7 +13345,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECART
+	{
+		"MT_MINECART",
 		-1,             // doomednum
 		S_MINECART_IDLE,// spawnstate
 		1,              // spawnhealth
@@ -13038,7 +13373,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		(statenum_t)MT_MINECARTSIDEMARK// raisestate
 	},
 
-	{          // MT_MINECARTSEG
+	{
+		"MT_MINECARTSEG",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13065,7 +13401,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTSPAWNER
+	{
+		"MT_MINECARTSPAWNER",
 		1219,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -13092,7 +13429,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTEND
+	{
+		"MT_MINECARTEND",
 		1220,           // doomednum
 		S_MINECARTEND,  // spawnstate
 		1,              // spawnhealth
@@ -13119,7 +13457,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTENDSOLID
+	{
+		"MT_MINECARTENDSOLID",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13146,7 +13485,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTSIDEMARK
+	{
+		"MT_MINECARTSIDEMARK",
 		-1,             // doomednum
 		S_MINECARTSIDEMARK2, // spawnstate
 		1,              // spawnhealth
@@ -13173,7 +13513,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTSPARK
+	{
+		"MT_MINECARTSPARK",
 		-1,             // doomednum
 		S_MINECARTSPARK,// spawnstate
 		1,              // spawnhealth
@@ -13200,7 +13541,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_SALOONDOOR
+	{
+		"MT_SALOONDOOR",
 		-1,             // doomednum
 		S_SALOONDOOR,   // spawnstate
 		1,              // spawnhealth
@@ -13227,7 +13569,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_SALOONDOORCENTER
+	{
+		"MT_SALOONDOORCENTER",
 		1221,           // doomednum
 		S_SALOONDOORCENTER, // spawnstate
 		1,              // spawnhealth
@@ -13254,7 +13597,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_TRAINCAMEOSPAWNER
+	{
+		"MT_TRAINCAMEOSPAWNER",
 		1222,           // doomednum
 		S_TRAINCAMEOSPAWNER_1,    // spawnstate
 		1,              // spawnhealth
@@ -13281,7 +13625,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_TRAINSEG
+	{
+		"MT_TRAINSEG",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13308,7 +13653,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_TRAINDUSTSPAWNER
+	{
+		"MT_TRAINDUSTSPAWNER",
 		1223,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13335,7 +13681,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_TRAINSTEAMSPAWNER
+	{
+		"MT_TRAINSTEAMSPAWNER",
 		1224,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13362,7 +13709,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{          // MT_MINECARTSWITCHPOINT
+	{
+		"MT_MINECARTSWITCHPOINT",
 		1229,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -13389,7 +13737,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEJET
+	{
+		"MT_FLAMEJET",
 		1300,           // doomednum
 		S_FLAMEJETSTND, // spawnstate
 		1000,           // spawnhealth
@@ -13416,7 +13765,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_VERTICALFLAMEJET
+	{
+		"MT_VERTICALFLAMEJET",
 		1301,           // doomednum
 		S_FLAMEJETSTND, // spawnstate
 		1000,           // spawnhealth
@@ -13443,7 +13793,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEJETFLAME
+	{
+		"MT_FLAMEJETFLAME",
 		-1,             // doomednum
 		S_FLAMEJETFLAME1, // spawnstate
 		1000,           // spawnhealth
@@ -13470,7 +13821,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FJSPINAXISA
+	{
+		"MT_FJSPINAXISA",
 		1302,           // doomednum
 		S_FJSPINAXISA1, // spawnstate
 		1000,           // spawnhealth
@@ -13497,7 +13849,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FJSPINAXISB
+	{
+		"MT_FJSPINAXISB",
 		1303,           // doomednum
 		S_FJSPINAXISB1, // spawnstate
 		1000,           // spawnhealth
@@ -13524,7 +13877,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEJETFLAMEB
+	{
+		"MT_FLAMEJETFLAMEB",
 		-1,             // doomednum
 		S_FLAMEJETFLAMEB1, // spawnstate
 		1000,           // spawnhealth
@@ -13551,7 +13905,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAVAFALL
+	{
+		"MT_LAVAFALL",
 		1304,           // doomednum
 		S_LAVAFALL_DORMANT, // spawnstate
 		1000,           // spawnhealth
@@ -13578,7 +13933,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAVAFALL_LAVA
+	{
+		"MT_LAVAFALL_LAVA",
 		-1,             // doomednum
 		S_LAVAFALL_LAVA1, // spawnstate
 		1000,           // spawnhealth
@@ -13605,7 +13961,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAVAFALLROCK
+	{
+		"MT_LAVAFALLROCK",
 		-1,             // doomednum
 		S_LAVAFALLROCK, // spawnstate
 		1000,           // spawnhealth
@@ -13632,7 +13989,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROLLOUTSPAWN
+	{
+		"MT_ROLLOUTSPAWN",
 		1305,           // doomednum
 		S_ROLLOUTSPAWN, // spawnstate
 		1000,           // spawnhealth
@@ -13659,7 +14017,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROLLOUTROCK
+	{
+		"MT_ROLLOUTROCK",
 		-1,             // doomednum
 		S_ROLLOUTROCK,  // spawnstate
 		1000,           // spawnhealth
@@ -13686,7 +14045,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIGFERNLEAF
+	{
+		"MT_BIGFERNLEAF",
 		-1,             // doomednum
 		S_BIGFERNLEAF,  // spawnstate
 		1000,           // spawnhealth
@@ -13713,7 +14073,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIGFERN
+	{
+		"MT_BIGFERN",
 		1306,           // doomednum
 		S_BIGFERN1,     // spawnstate
 		1000,           // spawnhealth
@@ -13740,7 +14101,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_JUNGLEPALM
+	{
+		"MT_JUNGLEPALM",
 		1307,           // doomednum
 		S_JUNGLEPALM,   // spawnstate
 		1000,           // spawnhealth
@@ -13767,7 +14129,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TORCHFLOWER
+	{
+		"MT_TORCHFLOWER",
 		1308,           // doomednum
 		S_TORCHFLOWER,  // spawnstate
 		1000,           // spawnhealth
@@ -13794,7 +14157,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WALLVINE_LONG
+	{
+		"MT_WALLVINE_LONG",
 		1309,           // doomednum
 		S_WALLVINE_LONG, // spawnstate
 		1000,           // spawnhealth
@@ -13821,7 +14185,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WALLVINE_SHORT
+	{
+		"MT_WALLVINE_SHORT",
 		1310,           // doomednum
 		S_WALLVINE_SHORT, // spawnstate
 		1000,           // spawnhealth
@@ -13848,7 +14213,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GLAREGOYLE
+	{
+		"MT_GLAREGOYLE",
 		1500,           // doomednum
 		S_GLAREGOYLE,    // spawnstate
 		1000,           // spawnhealth
@@ -13875,7 +14241,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GLAREGOYLEUP
+	{
+		"MT_GLAREGOYLEUP",
 		1501,           // doomednum
 		S_GLAREGOYLEUP,  // spawnstate
 		1000,           // spawnhealth
@@ -13902,7 +14269,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GLAREGOYLEDOWN
+	{
+		"MT_GLAREGOYLEDOWN",
 		1502,           // doomednum
 		S_GLAREGOYLEDOWN,// spawnstate
 		1000,           // spawnhealth
@@ -13929,7 +14297,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GLAREGOYLELONG
+	{
+		"MT_GLAREGOYLELONG",
 		1503,           // doomednum
 		S_GLAREGOYLELONG,// spawnstate
 		1000,           // spawnhealth
@@ -13956,7 +14325,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TARGET
+	{
+		"MT_TARGET",
 		1504,           // doomednum
 		S_TARGET_IDLE,  // spawnstate
 		1,              // spawnhealth
@@ -13983,7 +14353,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GREENFLAME
+	{
+		"MT_GREENFLAME",
 		1505,           // doomednum
 		S_GREENFLAME,   // spawnstate
 		1000,           // spawnhealth
@@ -14010,7 +14381,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUEGARGOYLE
+	{
+		"MT_BLUEGARGOYLE",
 		1506,           // doomednum
 		S_BLUEGARGOYLE, // spawnstate
 		1000,           // spawnhealth
@@ -14037,7 +14409,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE0
+	{
+		"MT_STALAGMITE0",
 		1900,           // doomednum
 		S_STG0,         // spawnstate
 		1000,           // spawnhealth
@@ -14064,7 +14437,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE1
+	{
+		"MT_STALAGMITE1",
 		1901,           // doomednum
 		S_STG1,         // spawnstate
 		1000,           // spawnhealth
@@ -14091,7 +14465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE2
+	{
+		"MT_STALAGMITE2",
 		1902,           // doomednum
 		S_STG2,         // spawnstate
 		1000,           // spawnhealth
@@ -14118,7 +14493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE3
+	{
+		"MT_STALAGMITE3",
 		1903,           // doomednum
 		S_STG3,         // spawnstate
 		1000,           // spawnhealth
@@ -14145,7 +14521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE4
+	{
+		"MT_STALAGMITE4",
 		1904,           // doomednum
 		S_STG4,         // spawnstate
 		1000,           // spawnhealth
@@ -14172,7 +14549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE5
+	{
+		"MT_STALAGMITE5",
 		1905,           // doomednum
 		S_STG5,         // spawnstate
 		1000,           // spawnhealth
@@ -14199,7 +14577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE6
+	{
+		"MT_STALAGMITE6",
 		1906,           // doomednum
 		S_STG6,         // spawnstate
 		1000,           // spawnhealth
@@ -14226,7 +14605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE7
+	{
+		"MT_STALAGMITE7",
 		1907,           // doomednum
 		S_STG7,         // spawnstate
 		1000,           // spawnhealth
@@ -14253,7 +14633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE8
+	{
+		"MT_STALAGMITE8",
 		1908,           // doomednum
 		S_STG8,         // spawnstate
 		1000,           // spawnhealth
@@ -14280,7 +14661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_STALAGMITE9
+	{
+		"MT_STALAGMITE9",
 		1909,           // doomednum
 		S_STG9,         // spawnstate
 		1000,           // spawnhealth
@@ -14307,7 +14689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_XMASPOLE
+	{
+		"MT_XMASPOLE",
 		1850,           // doomednum
 		S_XMASPOLE,     // spawnstate
 		1000,           // spawnhealth
@@ -14334,7 +14717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CANDYCANE
+	{
+		"MT_CANDYCANE",
 		1851,           // doomednum
 		S_CANDYCANE,    // spawnstate
 		1000,           // spawnhealth
@@ -14361,7 +14745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNOWMAN
+	{
+		"MT_SNOWMAN",
 		1852,           // doomednum
 		S_SNOWMAN,      // spawnstate
 		1000,           // spawnhealth
@@ -14388,7 +14773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNOWMANHAT
+	{
+		"MT_SNOWMANHAT",
 		1853,           // doomednum
 		S_SNOWMANHAT,   // spawnstate
 		1000,           // spawnhealth
@@ -14415,7 +14801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAMPPOST1
+	{
+		"MT_LAMPPOST1",
 		1854,           // doomednum
 		S_LAMPPOST1,    // spawnstate
 		1000,           // spawnhealth
@@ -14442,7 +14829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAMPPOST2
+	{
+		"MT_LAMPPOST2",
 		1855,           // doomednum
 		S_LAMPPOST2,    // spawnstate
 		1000,           // spawnhealth
@@ -14469,7 +14857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HANGSTAR
+	{
+		"MT_HANGSTAR",
 		1856,           // doomednum
 		S_HANGSTAR,     // spawnstate
 		1000,           // spawnhealth
@@ -14496,7 +14885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MISTLETOE
+	{
+		"MT_MISTLETOE",
 		2105,           // doomednum
 		S_MISTLETOE,    // spawnstate
 		1000,           // spawnhealth
@@ -14523,7 +14913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_XMASBLUEBERRYBUSH
+	{
+		"MT_XMASBLUEBERRYBUSH",
 		1859,           // doomednum
 		S_XMASBLUEBERRYBUSH, // spawnstate
 		1000,           // spawnhealth
@@ -14550,7 +14941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_XMASBERRYBUSH
+	{
+		"MT_XMASBERRYBUSH",
 		1857,           // doomednum
 		S_XMASBERRYBUSH, // spawnstate
 		1000,           // spawnhealth
@@ -14577,7 +14969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_XMASBUSH
+	{
+		"MT_XMASBUSH",
 		1858,           // doomednum
 		S_XMASBUSH,     // spawnstate
 		1000,           // spawnhealth
@@ -14604,7 +14997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FHZICE1
+	{
+		"MT_FHZICE1",
 		2100,           // doomednum
 		S_FHZICE1,      // spawnstate
 		1000,           // spawnhealth
@@ -14631,7 +15025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FHZICE2
+	{
+		"MT_FHZICE2",
 		2101,           // doomednum
 		S_FHZICE2,      // spawnstate
 		1000,           // spawnhealth
@@ -14658,7 +15053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROSY
+	{
+		"MT_ROSY",
 		2104,           // doomednum
 		S_ROSY_IDLE1,   // spawnstate
 		1000,           // spawnhealth
@@ -14685,7 +15081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CDLHRT
+	{
+		"MT_CDLHRT",
 		-1,             // doomednum
 		S_LHRT,         // spawnstate
 		1000,           // spawnhealth
@@ -14712,7 +15109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_JACKO1
+	{
+		"MT_JACKO1",
 		2006,           // doomednum
 		S_JACKO1,       // spawnstate
 		1000,           // spawnhealth
@@ -14739,7 +15137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_JACKO1OVERLAY_1 // raisestate
 	},
 
-	{           // MT_JACKO2
+	{
+		"MT_JACKO2",
 		2007,           // doomednum
 		S_JACKO2,       // spawnstate
 		1000,           // spawnhealth
@@ -14766,7 +15165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_JACKO2OVERLAY_1 // raisestate
 	},
 
-	{           // MT_JACKO3
+	{
+		"MT_JACKO3",
 		2008,           // doomednum
 		S_JACKO3,       // spawnstate
 		1000,           // spawnhealth
@@ -14793,7 +15193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_JACKO3OVERLAY_1 // raisestate
 	},
 
-	{           // MT_HHZTREE_TOP
+	{
+		"MT_HHZTREE_TOP",
 		2010,           // doomednum
 		S_HHZTREE_TOP,  // spawnstate
 		1000,           // spawnhealth
@@ -14820,7 +15221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZTREE_PART
+	{
+		"MT_HHZTREE_PART",
 		-1,             // doomednum
 		S_HHZTREE_TRUNK,// spawnstate
 		1000,           // spawnhealth
@@ -14847,7 +15249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZSHROOM
+	{
+		"MT_HHZSHROOM",
 		2009,           // doomednum
 		S_HHZSHROOM_1,    // spawnstate
 		1000,           // spawnhealth
@@ -14874,7 +15277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZGRASS
+	{
+		"MT_HHZGRASS",
 		2001,           // doomednum
 		S_HHZGRASS,     // spawnstate
 		1000,           // spawnhealth
@@ -14901,7 +15305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZTENTACLE1
+	{
+		"MT_HHZTENTACLE1",
 		2002,           // doomednum
 		S_HHZTENT1,     // spawnstate
 		1000,           // spawnhealth
@@ -14928,7 +15333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZTENTACLE2
+	{
+		"MT_HHZTENTACLE2",
 		2003,           // doomednum
 		S_HHZTENT2,     // spawnstate
 		1000,           // spawnhealth
@@ -14955,7 +15361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZSTALAGMITE_TALL
+	{
+		"MT_HHZSTALAGMITE_TALL",
 		2004,           // doomednum
 		S_HHZSTALAGMITE_TALL, // spawnstate
 		1000,           // spawnhealth
@@ -14982,7 +15389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HHZSTALAGMITE_SHORT
+	{
+		"MT_HHZSTALAGMITE_SHORT",
 		2005,           // doomednum
 		S_HHZSTALAGMITE_SHORT, // spawnstate
 		1000,           // spawnhealth
@@ -15012,7 +15420,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	// No, I did not do all of this by hand.
 	// I made a script to make all of these for me.
 	// Ha HA. ~Inuyasha
-	{           // MT_BSZTALLFLOWER_RED
+	{
+		"MT_BSZTALLFLOWER_RED",
 		1400,           // doomednum
 		S_BSZTALLFLOWER_RED, // spawnstate
 		1000,           // spawnhealth
@@ -15039,7 +15448,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTALLFLOWER_PURPLE
+	{
+		"MT_BSZTALLFLOWER_PURPLE",
 		1401,           // doomednum
 		S_BSZTALLFLOWER_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15066,7 +15476,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTALLFLOWER_BLUE
+	{
+		"MT_BSZTALLFLOWER_BLUE",
 		1402,           // doomednum
 		S_BSZTALLFLOWER_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15093,7 +15504,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTALLFLOWER_CYAN
+	{
+		"MT_BSZTALLFLOWER_CYAN",
 		1403,           // doomednum
 		S_BSZTALLFLOWER_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15120,7 +15532,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTALLFLOWER_YELLOW
+	{
+		"MT_BSZTALLFLOWER_YELLOW",
 		1404,           // doomednum
 		S_BSZTALLFLOWER_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15147,7 +15560,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTALLFLOWER_ORANGE
+	{
+		"MT_BSZTALLFLOWER_ORANGE",
 		1405,           // doomednum
 		S_BSZTALLFLOWER_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15174,7 +15588,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_RED
+	{
+		"MT_BSZFLOWER_RED",
 		1410,           // doomednum
 		S_BSZFLOWER_RED, // spawnstate
 		1000,           // spawnhealth
@@ -15201,7 +15616,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_PURPLE
+	{
+		"MT_BSZFLOWER_PURPLE",
 		1411,           // doomednum
 		S_BSZFLOWER_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15228,7 +15644,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_BLUE
+	{
+		"MT_BSZFLOWER_BLUE",
 		1412,           // doomednum
 		S_BSZFLOWER_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15255,7 +15672,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_CYAN
+	{
+		"MT_BSZFLOWER_CYAN",
 		1413,           // doomednum
 		S_BSZFLOWER_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15282,7 +15700,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_YELLOW
+	{
+		"MT_BSZFLOWER_YELLOW",
 		1414,           // doomednum
 		S_BSZFLOWER_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15309,7 +15728,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZFLOWER_ORANGE
+	{
+		"MT_BSZFLOWER_ORANGE",
 		1415,           // doomednum
 		S_BSZFLOWER_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15336,7 +15756,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_RED
+	{
+		"MT_BSZSHORTFLOWER_RED",
 		1420,           // doomednum
 		S_BSZSHORTFLOWER_RED, // spawnstate
 		1000,           // spawnhealth
@@ -15363,7 +15784,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_PURPLE
+	{
+		"MT_BSZSHORTFLOWER_PURPLE",
 		1421,           // doomednum
 		S_BSZSHORTFLOWER_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15390,7 +15812,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_BLUE
+	{
+		"MT_BSZSHORTFLOWER_BLUE",
 		1422,           // doomednum
 		S_BSZSHORTFLOWER_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15417,7 +15840,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_CYAN
+	{
+		"MT_BSZSHORTFLOWER_CYAN",
 		1423,           // doomednum
 		S_BSZSHORTFLOWER_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15444,7 +15868,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_YELLOW
+	{
+		"MT_BSZSHORTFLOWER_YELLOW",
 		1424,           // doomednum
 		S_BSZSHORTFLOWER_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15471,7 +15896,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHORTFLOWER_ORANGE
+	{
+		"MT_BSZSHORTFLOWER_ORANGE",
 		1425,           // doomednum
 		S_BSZSHORTFLOWER_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15498,7 +15924,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_RED
+	{
+		"MT_BSZTULIP_RED",
 		1430,           // doomednum
 		S_BSZTULIP_RED, // spawnstate
 		1000,           // spawnhealth
@@ -15525,7 +15952,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_PURPLE
+	{
+		"MT_BSZTULIP_PURPLE",
 		1431,           // doomednum
 		S_BSZTULIP_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15552,7 +15980,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_BLUE
+	{
+		"MT_BSZTULIP_BLUE",
 		1432,           // doomednum
 		S_BSZTULIP_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15579,7 +16008,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_CYAN
+	{
+		"MT_BSZTULIP_CYAN",
 		1433,           // doomednum
 		S_BSZTULIP_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15606,7 +16036,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_YELLOW
+	{
+		"MT_BSZTULIP_YELLOW",
 		1434,           // doomednum
 		S_BSZTULIP_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15633,7 +16064,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZTULIP_ORANGE
+	{
+		"MT_BSZTULIP_ORANGE",
 		1435,           // doomednum
 		S_BSZTULIP_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15660,7 +16092,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_RED
+	{
+		"MT_BSZCLUSTER_RED",
 		1440,           // doomednum
 		S_BSZCLUSTER_RED, // spawnstate
 		1000,           // spawnhealth
@@ -15687,7 +16120,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_PURPLE
+	{
+		"MT_BSZCLUSTER_PURPLE",
 		1441,           // doomednum
 		S_BSZCLUSTER_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15714,7 +16148,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_BLUE
+	{
+		"MT_BSZCLUSTER_BLUE",
 		1442,           // doomednum
 		S_BSZCLUSTER_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15741,7 +16176,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_CYAN
+	{
+		"MT_BSZCLUSTER_CYAN",
 		1443,           // doomednum
 		S_BSZCLUSTER_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15768,7 +16204,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_YELLOW
+	{
+		"MT_BSZCLUSTER_YELLOW",
 		1444,           // doomednum
 		S_BSZCLUSTER_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15795,7 +16232,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLUSTER_ORANGE
+	{
+		"MT_BSZCLUSTER_ORANGE",
 		1445,           // doomednum
 		S_BSZCLUSTER_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15822,7 +16260,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_RED
+	{
+		"MT_BSZBUSH_RED",
 		1450,           // doomednum
 		S_BSZBUSH_RED,  // spawnstate
 		1000,           // spawnhealth
@@ -15849,7 +16288,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_PURPLE
+	{
+		"MT_BSZBUSH_PURPLE",
 		1451,           // doomednum
 		S_BSZBUSH_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -15876,7 +16316,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_BLUE
+	{
+		"MT_BSZBUSH_BLUE",
 		1452,           // doomednum
 		S_BSZBUSH_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -15903,7 +16344,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_CYAN
+	{
+		"MT_BSZBUSH_CYAN",
 		1453,           // doomednum
 		S_BSZBUSH_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -15930,7 +16372,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_YELLOW
+	{
+		"MT_BSZBUSH_YELLOW",
 		1454,           // doomednum
 		S_BSZBUSH_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -15957,7 +16400,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZBUSH_ORANGE
+	{
+		"MT_BSZBUSH_ORANGE",
 		1455,           // doomednum
 		S_BSZBUSH_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -15984,7 +16428,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_RED
+	{
+		"MT_BSZVINE_RED",
 		1460,           // doomednum
 		S_BSZVINE_RED,  // spawnstate
 		1000,           // spawnhealth
@@ -16011,7 +16456,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_PURPLE
+	{
+		"MT_BSZVINE_PURPLE",
 		1461,           // doomednum
 		S_BSZVINE_PURPLE, // spawnstate
 		1000,           // spawnhealth
@@ -16038,7 +16484,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_BLUE
+	{
+		"MT_BSZVINE_BLUE",
 		1462,           // doomednum
 		S_BSZVINE_BLUE, // spawnstate
 		1000,           // spawnhealth
@@ -16065,7 +16512,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_CYAN
+	{
+		"MT_BSZVINE_CYAN",
 		1463,           // doomednum
 		S_BSZVINE_CYAN, // spawnstate
 		1000,           // spawnhealth
@@ -16092,7 +16540,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_YELLOW
+	{
+		"MT_BSZVINE_YELLOW",
 		1464,           // doomednum
 		S_BSZVINE_YELLOW, // spawnstate
 		1000,           // spawnhealth
@@ -16119,7 +16568,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZVINE_ORANGE
+	{
+		"MT_BSZVINE_ORANGE",
 		1465,           // doomednum
 		S_BSZVINE_ORANGE, // spawnstate
 		1000,           // spawnhealth
@@ -16146,7 +16596,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZSHRUB
+	{
+		"MT_BSZSHRUB",
 		1470,           // doomednum
 		S_BSZSHRUB,     // spawnstate
 		1000,           // spawnhealth
@@ -16173,7 +16624,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BSZCLOVER
+	{
+		"MT_BSZCLOVER",
 		1471,           // doomednum
 		S_BSZCLOVER,    // spawnstate
 		1000,           // spawnhealth
@@ -16200,7 +16652,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIG_PALMTREE_TRUNK
+	{
+		"MT_BIG_PALMTREE_TRUNK",
 		-1,             // doomednum
 		S_BIG_PALMTREE_TRUNK, // spawnstate
 		1000,           // spawnhealth
@@ -16227,7 +16680,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BIG_PALMTREE_TOP
+	{
+		"MT_BIG_PALMTREE_TOP",
 		1473,           // doomednum
 		S_BIG_PALMTREE_TOP, // spawnstate
 		1000,           // spawnhealth
@@ -16254,7 +16708,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PALMTREE_TRUNK
+	{
+		"MT_PALMTREE_TRUNK",
 		-1,             // doomednum
 		S_PALMTREE_TRUNK, // spawnstate
 		1000,           // spawnhealth
@@ -16281,7 +16736,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PALMTREE_TOP
+	{
+		"MT_PALMTREE_TOP",
 		1475,           // doomednum
 		S_PALMTREE_TOP, // spawnstate
 		1000,           // spawnhealth
@@ -16308,7 +16764,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DBALL
+	{
+		"MT_DBALL",
 		1875,           // doomednum
 		S_DBALL1,       // spawnstate
 		1000,           // spawnhealth
@@ -16335,7 +16792,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGSTATUE2
+	{
+		"MT_EGGSTATUE2",
 		1876,           // doomednum
 		S_EGGSTATUE2,   // spawnstate
 		1000,           // spawnhealth
@@ -16362,7 +16820,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ELEMENTAL_ORB
+	{
+		"MT_ELEMENTAL_ORB",
 		-1,             // doomednum
 		S_ELEM1,        // spawnstate
 		1000,           // spawnhealth
@@ -16389,7 +16848,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_ELEMF9        // raisestate
 	},
 
-	{           // MT_ATTRACT_ORB
+	{
+		"MT_ATTRACT_ORB",
 		-1,             // doomednum
 		S_MAGN1,        // spawnstate
 		1000,           // spawnhealth
@@ -16416,7 +16876,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FORCE_ORB
+	{
+		"MT_FORCE_ORB",
 		-1,             // doomednum
 		S_FORC1,        // spawnstate
 		1000,           // spawnhealth
@@ -16443,7 +16904,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FORC21        // raisestate
 	},
 
-	{           // MT_ARMAGEDDON_ORB
+	{
+		"MT_ARMAGEDDON_ORB",
 		-1,             // doomednum
 		S_ARMA1,        // spawnstate
 		1000,           // spawnhealth
@@ -16470,7 +16932,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WHIRLWIND_ORB
+	{
+		"MT_WHIRLWIND_ORB",
 		-1,             // doomednum
 		S_WIND1,        // spawnstate
 		1000,           // spawnhealth
@@ -16497,7 +16960,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PITY_ORB
+	{
+		"MT_PITY_ORB",
 		-1,             // doomednum
 		S_PITY1,        // spawnstate
 		1000,           // spawnhealth
@@ -16524,7 +16988,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLAMEAURA_ORB
+	{
+		"MT_FLAMEAURA_ORB",
 		-1,             // doomednum
 		S_FIRSB1,       // spawnstate
 		1000,           // spawnhealth
@@ -16551,7 +17016,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FIRS10        // raisestate
 	},
 
-	{           // MT_BUBBLEWRAP_ORB
+	{
+		"MT_BUBBLEWRAP_ORB",
 		-1,             // doomednum
 		S_BUBSB1,       // spawnstate
 		1000,           // spawnhealth
@@ -16578,7 +17044,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_BUBS10        // raisestate
 	},
 
-	{           // MT_THUNDERCOIN_ORB
+	{
+		"MT_THUNDERCOIN_ORB",
 		-1,             // doomednum
 		S_ZAPSB1,       // spawnstate
 		1000,           // spawnhealth
@@ -16605,7 +17072,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_ZAPS14        // raisestate
 	},
 
-	{           // MT_THUNDERCOIN_SPARK
+	{
+		"MT_THUNDERCOIN_SPARK",
 		-1,             // doomednum
 		S_THUNDERCOIN_SPARK, // spawnstate
 		1,              // spawnhealth
@@ -16632,7 +17100,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_IVSP
+	{
+		"MT_IVSP",
 		-1,             // doomednum
 		S_IVSP,         // spawnstate
 		1000,           // spawnhealth
@@ -16659,7 +17128,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SUPERSPARK
+	{
+		"MT_SUPERSPARK",
 		-1,             // doomednum
 		S_SSPK1,        // spawnstate
 		1,              // spawnhealth
@@ -16687,7 +17157,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 	// Bluebird
-	{           // MT_FLICKY_01
+	{
+		"MT_FLICKY_01",
 		-1,             // doomednum
 		S_FLICKY_01_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16714,7 +17185,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_01_CENTER
+	{
+		"MT_FLICKY_01_CENTER",
 		2200,             // doomednum
 		S_FLICKY_01_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -16741,7 +17213,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_02
+	{
+		"MT_FLICKY_02",
 		-1,             // doomednum
 		S_FLICKY_02_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16768,7 +17241,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_02_CENTER
+	{
+		"MT_FLICKY_02_CENTER",
 		2201,             // doomednum
 		S_FLICKY_02_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -16795,7 +17269,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_03
+	{
+		"MT_FLICKY_03",
 		-1,             // doomednum
 		S_FLICKY_03_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16822,7 +17297,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_03_CENTER
+	{
+		"MT_FLICKY_03_CENTER",
 		2202,             // doomednum
 		S_FLICKY_03_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -16849,7 +17325,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_04
+	{
+		"MT_FLICKY_04",
 		-1,             // doomednum
 		S_FLICKY_04_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16876,7 +17353,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLICKY_04_CENTER
+	{
+		"MT_FLICKY_04_CENTER",
 		2203,             // doomednum
 		S_FLICKY_04_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -16903,7 +17381,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_05
+	{
+		"MT_FLICKY_05",
 		-1,             // doomednum
 		S_FLICKY_05_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16930,7 +17409,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_05_CENTER
+	{
+		"MT_FLICKY_05_CENTER",
 		2204,             // doomednum
 		S_FLICKY_05_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -16957,7 +17437,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_06
+	{
+		"MT_FLICKY_06",
 		-1,             // doomednum
 		S_FLICKY_06_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -16984,7 +17465,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_06_CENTER
+	{
+		"MT_FLICKY_06_CENTER",
 		2205,             // doomednum
 		S_FLICKY_06_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17011,7 +17493,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_07
+	{
+		"MT_FLICKY_07",
 		-1,             // doomednum
 		S_FLICKY_07_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17038,7 +17521,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLICKY_07_CENTER
+	{
+		"MT_FLICKY_07_CENTER",
 		2206,             // doomednum
 		S_FLICKY_07_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17065,7 +17549,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_08
+	{
+		"MT_FLICKY_08",
 		-1,             // doomednum
 		S_FLICKY_08_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17092,7 +17577,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLICKY_08_CENTER
+	{
+		"MT_FLICKY_08_CENTER",
 		2207,             // doomednum
 		S_FLICKY_08_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17119,7 +17605,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_09
+	{
+		"MT_FLICKY_09",
 		-1,             // doomednum
 		S_FLICKY_09_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17146,7 +17633,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_09_CENTER
+	{
+		"MT_FLICKY_09_CENTER",
 		2208,             // doomednum
 		S_FLICKY_09_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17173,7 +17661,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_10
+	{
+		"MT_FLICKY_10",
 		-1,             // doomednum
 		S_FLICKY_10_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17200,7 +17689,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_10_CENTER
+	{
+		"MT_FLICKY_10_CENTER",
 		2209,             // doomednum
 		S_FLICKY_10_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17227,7 +17717,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_11
+	{
+		"MT_FLICKY_11",
 		-1,             // doomednum
 		S_FLICKY_11_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17254,7 +17745,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_11_CENTER
+	{
+		"MT_FLICKY_11_CENTER",
 		2210,             // doomednum
 		S_FLICKY_11_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17281,7 +17773,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_12
+	{
+		"MT_FLICKY_12",
 		-1,             // doomednum
 		S_FLICKY_12_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17308,7 +17801,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_12_CENTER
+	{
+		"MT_FLICKY_12_CENTER",
 		2211,             // doomednum
 		S_FLICKY_12_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17335,7 +17829,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_13
+	{
+		"MT_FLICKY_13",
 		-1,             // doomednum
 		S_FLICKY_13_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17362,7 +17857,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_13_CENTER
+	{
+		"MT_FLICKY_13_CENTER",
 		2212,             // doomednum
 		S_FLICKY_13_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17389,7 +17885,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_14
+	{
+		"MT_FLICKY_14",
 		-1,             // doomednum
 		S_FLICKY_14_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17416,7 +17913,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_14_CENTER
+	{
+		"MT_FLICKY_14_CENTER",
 		2213,             // doomednum
 		S_FLICKY_14_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17443,7 +17941,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_15
+	{
+		"MT_FLICKY_15",
 		-1,             // doomednum
 		S_FLICKY_15_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17470,7 +17969,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_15_CENTER
+	{
+		"MT_FLICKY_15_CENTER",
 		2214,             // doomednum
 		S_FLICKY_15_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17497,7 +17997,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_FLICKY_16
+	{
+		"MT_FLICKY_16",
 		-1,             // doomednum
 		S_FLICKY_16_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17524,7 +18025,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_FLICKY_16_CENTER
+	{
+		"MT_FLICKY_16_CENTER",
 		2215,             // doomednum
 		S_FLICKY_16_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17551,7 +18053,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_SECRETFLICKY_01
+	{
+		"MT_SECRETFLICKY_01",
 		-1,             // doomednum
 		S_SECRETFLICKY_01_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17578,7 +18081,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_SECRETFLICKY_01_CENTER
+	{
+		"MT_SECRETFLICKY_01_CENTER",
 		2216,             // doomednum
 		S_SECRETFLICKY_01_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17605,7 +18109,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_SECRETFLICKY_02
+	{
+		"MT_SECRETFLICKY_02",
 		-1,             // doomednum
 		S_SECRETFLICKY_02_OUT, // spawnstate
 		1000,           // spawnhealth
@@ -17632,7 +18137,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_FLICKY_BUBBLE // raisestate
 	},
 
-	{           // MT_SECRETFLICKY_02_CENTER
+	{
+		"MT_SECRETFLICKY_02_CENTER",
 		2217,             // doomednum
 		S_SECRETFLICKY_02_CENTER, // spawnstate
 		1000,           // spawnhealth
@@ -17659,7 +18165,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL // raisestate
 	},
 
-	{           // MT_SEED
+	{
+		"MT_SEED",
 		-1,             // doomednum
 		S_SEED,         // spawnstate
 		1000,           // spawnhealth
@@ -17686,7 +18193,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RAIN
+	{
+		"MT_RAIN",
 		-1,             // doomednum
 		S_RAIN1,        // spawnstate
 		1000,           // spawnhealth
@@ -17713,7 +18221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SNOWFLAKE
+	{
+		"MT_SNOWFLAKE",
 		-1,             // doomednum
 		S_SNOW1,        // spawnstate
 		1000,           // spawnhealth
@@ -17740,7 +18249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPLISH
+	{
+		"MT_SPLISH",
 		-1,             // doomednum
 		S_SPLISH1,      // spawnstate
 		1000,           // spawnhealth
@@ -17767,7 +18277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LAVASPLISH
+	{
+		"MT_LAVASPLISH",
 		-1,             // doomednum
 		S_LAVASPLISH,   // spawnstate
 		1000,           // spawnhealth
@@ -17794,7 +18305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SMOKE
+	{
+		"MT_SMOKE",
 		-1,             // doomednum
 		S_SMOKE1,       // spawnstate
 		1000,           // spawnhealth
@@ -17821,7 +18333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SMALLBUBBLE
+	{
+		"MT_SMALLBUBBLE",
 		-1,             // doomednum
 		S_SMALLBUBBLE,  // spawnstate
 		1000,           // spawnhealth
@@ -17848,7 +18361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MEDIUMBUBBLE
+	{
+		"MT_MEDIUMBUBBLE",
 		-1,             // doomednum
 		S_MEDIUMBUBBLE, // spawnstate
 		1000,           // spawnhealth
@@ -17875,7 +18389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EXTRALARGEBUBBLE
+	{
+		"MT_EXTRALARGEBUBBLE",
 		-1,             // doomednum
 		S_LARGEBUBBLE1, // spawnstate
 		1000,           // spawnhealth
@@ -17902,7 +18417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_EXTRALARGEBUBBLE // raisestate
 	},
 
-	{           // MT_WATERZAP
+	{
+		"MT_WATERZAP",
 		-1,             // doomednum
 		S_WATERZAP,     // spawnstate
 		1000,           // spawnhealth
@@ -17929,7 +18445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPINDUST
+	{
+		"MT_SPINDUST",
 		-1,             // doomednum
 		S_SPINDUST1,     // spawnstate
 		1000,           // spawnhealth
@@ -17956,7 +18473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TFOG
+	{
+		"MT_TFOG",
 		-1,             // doomednum
 		S_FOG1,         // spawnstate
 		1,              // spawnhealth
@@ -17983,7 +18501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PARTICLE
+	{
+		"MT_PARTICLE",
 		-1,             // doomednum
 		S_PARTICLE,     // spawnstate
 		1000,           // spawnhealth
@@ -18010,7 +18529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PARTICLEGEN
+	{
+		"MT_PARTICLEGEN",
 		757,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -18037,7 +18557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCORE
+	{
+		"MT_SCORE",
 		-1,             // doomednum
 		S_SCRA,         // spawnstate
 		1,              // spawnhealth
@@ -18064,7 +18585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DROWNNUMBERS
+	{
+		"MT_DROWNNUMBERS",
 		-1,             // doomednum
 		S_ZERO1,        // spawnstate
 		1000,           // spawnhealth
@@ -18091,7 +18613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GOTEMERALD
+	{
+		"MT_GOTEMERALD",
 		-1,             // doomednum
 		S_CEMG1,        // spawnstate
 		1000,           // spawnhealth
@@ -18118,7 +18641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LOCKON
+	{
+		"MT_LOCKON",
 		-1,             // doomednum
 		S_LOCKON1,       // spawnstate
 		1000,           // spawnhealth
@@ -18145,7 +18669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LOCKONINF
+	{
+		"MT_LOCKONINF",
 		1126,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -18172,7 +18697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TAG
+	{
+		"MT_TAG",
 		-1,             // doomednum
 		S_TTAG,         // spawnstate
 		1000,           // spawnhealth
@@ -18199,7 +18725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GOTFLAG
+	{
+		"MT_GOTFLAG",
 		-1,             // doomednum
 		S_GOTFLAG,      // spawnstate
 		1000,           // spawnhealth
@@ -18226,7 +18753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FINISHFLAG
+	{
+		"MT_FINISHFLAG",
 		-1,             // doomednum
 		S_FINISHFLAG,   // spawnstate
 		1000,           // spawnhealth
@@ -18254,7 +18782,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 	// ambient sound effect
-	{           // MT_AMBIENT
+	{
+		"MT_AMBIENT",
 		700,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -18281,7 +18810,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CORK
+	{
+		"MT_CORK",
 		-1,             // doomednum
 		S_CORK,         // spawnstate
 		1000,           // spawnhealth
@@ -18308,7 +18838,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_LHRT
+	{
+		"MT_LHRT",
 		-1,             // doomednum
 		S_LHRT,         // spawnstate
 		1000,           // spawnhealth
@@ -18335,7 +18866,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDRING
+	{
+		"MT_REDRING",
 		-1,             // doomednum
 		S_RRNG1,        // spawnstate
 		1000,           // spawnhealth
@@ -18363,7 +18895,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 // Ring ammo: Health = amount given
-	{           // MT_BOUNCERING
+	{
+		"MT_BOUNCERING",
 		301,            // doomednum
 		S_BOUNCERINGAMMO, // spawnstate
 		10,             // spawnhealth
@@ -18390,7 +18923,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RAILRING
+	{
+		"MT_RAILRING",
 		302,            // doomednum
 		S_RAILRINGAMMO, // spawnstate
 		5,              // spawnhealth
@@ -18417,7 +18951,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_INFINITYRING
+	{
+		"MT_INFINITYRING",
 		303,            // doomednum
 		S_INFINITYRINGAMMO,// spawnstate
 		80,             // spawnhealth
@@ -18444,7 +18979,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AUTOMATICRING
+	{
+		"MT_AUTOMATICRING",
 		304,            // doomednum
 		S_AUTOMATICRINGAMMO, // spawnstate
 		40,             // spawnhealth
@@ -18471,7 +19007,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EXPLOSIONRING
+	{
+		"MT_EXPLOSIONRING",
 		305,            // doomednum
 		S_EXPLOSIONRINGAMMO, // spawnstate
 		5,              // spawnhealth
@@ -18498,7 +19035,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCATTERRING
+	{
+		"MT_SCATTERRING",
 		306,            // doomednum
 		S_SCATTERRINGAMMO, // spawnstate
 		5,              // spawnhealth
@@ -18525,7 +19063,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GRENADERING
+	{
+		"MT_GRENADERING",
 		307,            // doomednum
 		S_GRENADERINGAMMO, // spawnstate
 		10,             // spawnhealth
@@ -18553,7 +19092,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 // Ring panels: Reactiontime = amount given
-	{           // MT_BOUNCEPICKUP
+	{
+		"MT_BOUNCEPICKUP",
 		330,            // doomednum
 		S_BOUNCEPICKUP, // spawnstate
 		1,              // spawnhealth
@@ -18580,7 +19120,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RAILPICKUP
+	{
+		"MT_RAILPICKUP",
 		331,            // doomednum
 		S_RAILPICKUP,   // spawnstate
 		1,              // spawnhealth
@@ -18607,7 +19148,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AUTOPICKUP
+	{
+		"MT_AUTOPICKUP",
 		332,            // doomednum
 		S_AUTOPICKUP,   // spawnstate
 		1,              // spawnhealth
@@ -18634,7 +19176,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EXPLODEPICKUP
+	{
+		"MT_EXPLODEPICKUP",
 		333,            // doomednum
 		S_EXPLODEPICKUP,// spawnstate
 		1,              // spawnhealth
@@ -18661,7 +19204,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SCATTERPICKUP
+	{
+		"MT_SCATTERPICKUP",
 		334,            // doomednum
 		S_SCATTERPICKUP,// spawnstate
 		1,              // spawnhealth
@@ -18688,7 +19232,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GRENADEPICKUP
+	{
+		"MT_GRENADEPICKUP",
 		335,            // doomednum
 		S_GRENADEPICKUP,// spawnstate
 		1,              // spawnhealth
@@ -18715,7 +19260,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNBOUNCE
+	{
+		"MT_THROWNBOUNCE",
 		-1,             // doomednum
 		S_THROWNBOUNCE1,// spawnstate
 		1000,           // spawnhealth
@@ -18742,7 +19288,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNINFINITY
+	{
+		"MT_THROWNINFINITY",
 		-1,             // doomednum
 		S_THROWNINFINITY1, // spawnstate
 		1000,           // spawnhealth
@@ -18769,7 +19316,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNAUTOMATIC
+	{
+		"MT_THROWNAUTOMATIC",
 		-1,             // doomednum
 		S_THROWNAUTOMATIC1, // spawnstate
 		1000,           // spawnhealth
@@ -18796,7 +19344,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNSCATTER
+	{
+		"MT_THROWNSCATTER",
 		-1,             // doomednum
 		S_THROWNSCATTER,// spawnstate
 		1000,           // spawnhealth
@@ -18823,7 +19372,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNEXPLOSION
+	{
+		"MT_THROWNEXPLOSION",
 		-1,             // doomednum
 		S_THROWNEXPLOSION1, // spawnstate
 		1000,           // spawnhealth
@@ -18850,7 +19400,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_THROWNGRENADE
+	{
+		"MT_THROWNGRENADE",
 		-1,             // doomednum
 		S_THROWNGRENADE1, // spawnstate
 		1000,           // spawnhealth
@@ -18877,7 +19428,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_COIN
+	{
+		"MT_COIN",
 		1800,           // doomednum
 		S_COIN1,        // spawnstate
 		1000,           // spawnhealth
@@ -18904,7 +19456,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLINGCOIN
+	{
+		"MT_FLINGCOIN",
 		-1,             // doomednum
 		S_COIN1,        // spawnstate
 		1000,           // spawnhealth
@@ -18931,7 +19484,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GOOMBA
+	{
+		"MT_GOOMBA",
 		1801,           // doomednum
 		S_GOOMBA1,      // spawnstate
 		1,              // spawnhealth
@@ -18958,7 +19512,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUEGOOMBA
+	{
+		"MT_BLUEGOOMBA",
 		1802,              // doomednum
 		S_BLUEGOOMBA1,     // spawnstate
 		1,                 // spawnhealth
@@ -18985,7 +19540,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL             // raisestate
 	},
 
-	{           // MT_FIREFLOWER
+	{
+		"MT_FIREFLOWER",
 		1803,           // doomednum
 		S_FIREFLOWER1,  // spawnstate
 		1000,           // spawnhealth
@@ -19012,7 +19568,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FIREBALL
+	{
+		"MT_FIREBALL",
 		-1,             // doomednum
 		S_FIREBALL,     // spawnstate
 		1000,           // spawnhealth
@@ -19039,7 +19596,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FIREBALLTRAIL
+	{
+		"MT_FIREBALLTRAIL",
 		-1,                  // doomednum
 		S_FIREBALLTRAIL1,    // spawnstate
 		1000,                // spawnhealth
@@ -19066,7 +19624,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL               // raisestate
 	},
 
-	{           // MT_SHELL
+	{
+		"MT_SHELL",
 		1804,           // doomednum
 		S_SHELL,        // spawnstate
 		1,              // spawnhealth
@@ -19093,7 +19652,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PUMA
+	{
+		"MT_PUMA",
 		1805,           // doomednum
 		S_PUMA_START1,  // spawnstate
 		1000,           // spawnhealth
@@ -19120,7 +19680,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PUMATRAIL
+	{
+		"MT_PUMATRAIL",
 		-1,             // doomednum
 		S_PUMATRAIL1,   // spawnstate
 		1000,           // spawnhealth
@@ -19147,7 +19708,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HAMMER
+	{
+		"MT_HAMMER",
 		-1,             // doomednum
 		S_HAMMER,      // spawnstate
 		1000,           // spawnhealth
@@ -19173,7 +19735,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		MF_PAIN,        // flags
 		S_NULL          // raisestate
 	},
-	{           // MT_KOOPA
+	{
+		"MT_KOOPA",
 		1806,           // doomednum
 		S_KOOPA1,       // spawnstate
 		1000,           // spawnhealth
@@ -19200,7 +19763,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_KOOPAFLAME
+	{
+		"MT_KOOPAFLAME",
 		-1,             // doomednum
 		S_KOOPAFLAME1,  // spawnstate
 		1000,           // spawnhealth
@@ -19227,7 +19791,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AXE
+	{
+		"MT_AXE",
 		1807,           // doomednum
 		S_AXE1,         // spawnstate
 		1000,           // spawnhealth
@@ -19254,7 +19819,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MARIOBUSH1
+	{
+		"MT_MARIOBUSH1",
 		1808,           // doomednum
 		S_MARIOBUSH1,   // spawnstate
 		1000,           // spawnhealth
@@ -19281,7 +19847,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_MARIOBUSH2
+	{
+		"MT_MARIOBUSH2",
 		1809,           // doomednum
 		S_MARIOBUSH2,   // spawnstate
 		1000,           // spawnhealth
@@ -19308,7 +19875,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TOAD
+	{
+		"MT_TOAD",
 		1810,           // doomednum
 		S_TOAD,         // spawnstate
 		1000,           // spawnhealth
@@ -19335,7 +19903,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AXIS
+	{
+		"MT_AXIS",
 		1700,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19362,7 +19931,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AXISTRANSFER
+	{
+		"MT_AXISTRANSFER",
 		1701,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19389,7 +19959,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_AXISTRANSFERLINE
+	{
+		"MT_AXISTRANSFERLINE",
 		1702,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19416,7 +19987,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSDRONE
+	{
+		"MT_NIGHTSDRONE",
 		1703,           // doomednum
 		S_INVISIBLE,  // spawnstate
 		120,            // spawnhealth
@@ -19443,7 +20015,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSDRONE_MAN
+	{
+		"MT_NIGHTSDRONE_MAN",
 		-1,           // doomednum
 		S_INVISIBLE,  // spawnstate
 		120,            // spawnhealth
@@ -19470,7 +20043,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSDRONE_SPARKLING
+	{
+		"MT_NIGHTSDRONE_SPARKLING",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19497,7 +20071,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSDRONE_GOAL
+	{
+		"MT_NIGHTSDRONE_GOAL",
 		-1,             // doomednum
 		S_INVISIBLE,   // spawnstate
 		1000,           // spawnhealth
@@ -19524,7 +20099,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSPARKLE
+	{
+		"MT_NIGHTSPARKLE",
 		-1,             // doomednum
 		S_NIGHTSPARKLE1,// spawnstate
 		1000,           // spawnhealth
@@ -19551,7 +20127,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSLOOPHELPER
+	{
+		"MT_NIGHTSLOOPHELPER",
 		-1,             // doomednum
 		S_NIGHTSLOOPHELPER,// spawnstate
 		1000,           // spawnhealth
@@ -19578,7 +20155,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSBUMPER
+	{
+		"MT_NIGHTSBUMPER",
 		1704,           // doomednum
 		S_NIGHTSBUMPER1,// spawnstate
 		1,              // spawnhealth
@@ -19605,7 +20183,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HOOP
+	{
+		"MT_HOOP",
 		-1,             // doomednum
 		S_HOOP,         // spawnstate
 		1000,           // spawnhealth
@@ -19632,7 +20211,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HOOPCOLLIDE
+	{
+		"MT_HOOPCOLLIDE",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19659,7 +20239,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HOOPCENTER
+	{
+		"MT_HOOPCENTER",
 		-1,             // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -19686,7 +20267,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSCORE
+	{
+		"MT_NIGHTSCORE",
 		-1,             // doomednum
 		S_NIGHTSCORE10, // spawnstate
 		1000,           // spawnhealth
@@ -19713,7 +20295,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSCHIP
+	{
+		"MT_NIGHTSCHIP",
 		-1,             // doomednum
 		S_NIGHTSCHIP,   // spawnstate
 		1000,           // spawnhealth
@@ -19740,7 +20323,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NIGHTSCHIPBONUS // raisestate
 	},
 
-	{           // MT_FLINGNIGHTSCHIP
+	{
+		"MT_FLINGNIGHTSCHIP",
 		-1,             // doomednum
 		S_NIGHTSCHIP,   // spawnstate
 		1000,           // spawnhealth
@@ -19767,7 +20351,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NIGHTSCHIPBONUS // raisestate
 	},
 
-	{           // MT_NIGHTSSTAR
+	{
+		"MT_NIGHTSSTAR",
 		-1,             // doomednum
 		S_NIGHTSSTAR,   // spawnstate
 		1000,           // spawnhealth
@@ -19794,13 +20379,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FLINGNIGHTSSTAR
+	{
+		"MT_FLINGNIGHTSSTAR",
 		-1,             // doomednum
 		S_NIGHTSSTAR,   // spawnstate
 		1000,           // spawnhealth
 		S_NIGHTSSTARXMAS, // seestate
 		sfx_None,       // seesound
-		MT_FLINGNIGHTSSTAR, // reactiontime
+		MT_FLINGNIGHTSSTAR,  // reactiontime
 		sfx_None,       // attacksound
 		S_NULL,         // painstate
 		MT_NIGHTSSTAR,  // painchance
@@ -19821,7 +20407,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSSUPERLOOP
+	{
+		"MT_NIGHTSSUPERLOOP",
 		1707,           // doomednum
 		S_NIGHTSSUPERLOOP, // spawnstate
 		1000,           // spawnhealth
@@ -19848,7 +20435,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSDRILLREFILL
+	{
+		"MT_NIGHTSDRILLREFILL",
 		1708,           // doomednum
 		S_NIGHTSDRILLREFILL, // spawnstate
 		1000,           // spawnhealth
@@ -19875,7 +20463,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSHELPER
+	{
+		"MT_NIGHTSHELPER",
 		1709,           // doomednum
 		S_NIGHTSHELPER, // spawnstate
 		1000,           // spawnhealth
@@ -19902,7 +20491,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSEXTRATIME
+	{
+		"MT_NIGHTSEXTRATIME",
 		1711,           // doomednum
 		S_NIGHTSEXTRATIME, // spawnstate
 		1000,           // spawnhealth
@@ -19929,7 +20519,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTSLINKFREEZE
+	{
+		"MT_NIGHTSLINKFREEZE",
 		1712,           // doomednum
 		S_NIGHTSLINKFREEZE, // spawnstate
 		1000,           // spawnhealth
@@ -19956,7 +20547,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EGGCAPSULE
+	{
+		"MT_EGGCAPSULE",
 		1710,           // doomednum
 		S_EGGCAPSULE,   // spawnstate
 		20,             // spawnhealth
@@ -19983,7 +20575,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_IDEYAANCHOR
+	{
+		"MT_IDEYAANCHOR",
 		1714,           // doomednum
 		S_INVISIBLE,    // spawnstate
 		0,              // spawnhealth
@@ -20010,7 +20603,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NIGHTOPIANHELPER
+	{
+		"MT_NIGHTOPIANHELPER",
 		-1,             // doomednum
 		S_NIGHTOPIANHELPER1, // spawnstate
 		1000,           // spawnhealth
@@ -20037,7 +20631,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PIAN
+	{
+		"MT_PIAN",
 		1602,           // doomednum
 		S_PIAN_LOOK1,   // spawnstate
 		1000,           // spawnhealth
@@ -20064,7 +20659,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SHLEEP
+	{
+		"MT_SHLEEP",
 		1601,           // doomednum
 		S_SHLEEP1,      // spawnstate
 		1,              // spawnhealth
@@ -20091,7 +20687,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_PENGUINATOR
+	{
+		"MT_PENGUINATOR",
 		129,            // doomednum
 		S_PENGUINATOR_LOOK, // spawnstate
 		1,              // spawnhealth
@@ -20118,7 +20715,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POPHAT
+	{
+		"MT_POPHAT",
 		130,            // doomednum -- happy anniversary!
 		S_POPHAT_LOOK,  // spawnstate
 		1,              // spawnhealth
@@ -20145,7 +20743,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POPSHOT
+	{
+		"MT_POPSHOT",
 		-1,             // doomednum
 		S_POPSHOT,      // spawnstate
 		1,              // spawnhealth
@@ -20172,7 +20771,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POPSHOT_TRAIL
+	{
+		"MT_POPSHOT_TRAIL",
 		-1,             // doomednum
 		S_POPSHOT_TRAIL,// spawnstate
 		1000,           // spawnhealth
@@ -20199,7 +20799,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HIVEELEMENTAL
+	{
+		"MT_HIVEELEMENTAL",
 		127,            // doomednum
 		S_HIVEELEMENTAL_LOOK, // spawnstate
 		2,              // spawnhealth
@@ -20226,7 +20827,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUMBLEBORE
+	{
+		"MT_BUMBLEBORE",
 		128,			// doomednum
 		S_BUMBLEBORE_SPAWN, // spawnstate
 		0,              // spawnhealth -- this is how you do drones...
@@ -20253,7 +20855,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BUGGLE
+	{
+		"MT_BUGGLE",
 		124,            // doomednum
 		S_BUGGLEIDLE,   // spawnstate
 		1,              // spawnhealth
@@ -20280,7 +20883,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SMASHINGSPIKEBALL
+	{
+		"MT_SMASHINGSPIKEBALL",
 		2000,           // doomednum
 		S_SMASHSPIKE_FLOAT, // spawnstate
 		1000,           // spawnhealth
@@ -20307,7 +20911,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACOLANTERN
+	{
+		"MT_CACOLANTERN",
 		132,            // doomednum
 		S_CACO_LOOK,    // spawnstate
 		1,              // spawnhealth
@@ -20334,7 +20939,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACOSHARD
+	{
+		"MT_CACOSHARD",
 		-1,             // doomednum
 		S_CACOSHARD_RANDOMIZE, // spawnstate
 		1000,           // spawnhealth
@@ -20361,7 +20967,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CACOFIRE
+	{
+		"MT_CACOFIRE",
 		-1,             // doomednum
 		S_CACOFIRE1,    // spawnstate
 		1000,           // spawnhealth
@@ -20388,7 +20995,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPINBOBERT
+	{
+		"MT_SPINBOBERT",
 		131,            // doomednum
 		S_SPINBOBERT_MOVE_FLIPUP, // spawnstate
 		1,              // spawnhealth
@@ -20415,7 +21023,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPINBOBERT_FIRE1
+	{
+		"MT_SPINBOBERT_FIRE1",
 		-1,             // doomednum
 		S_SPINBOBERT_FIRE_MOVE, // spawnstate
 		1,              // spawnhealth
@@ -20442,7 +21051,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPINBOBERT_FIRE2
+	{
+		"MT_SPINBOBERT_FIRE2",
 		-1,             // doomednum
 		S_SPINBOBERT_FIRE_MOVE, // spawnstate
 		1,              // spawnhealth
@@ -20469,7 +21079,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_HANGSTER
+	{
+		"MT_HANGSTER",
 		133,            // doomednum
 		S_HANGSTER_LOOK, // spawnstate
 		1,              // spawnhealth
@@ -20496,7 +21107,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_TELEPORTMAN
+	{
+		"MT_TELEPORTMAN",
 		751,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20523,7 +21135,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ALTVIEWMAN
+	{
+		"MT_ALTVIEWMAN",
 		752,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20550,7 +21163,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_CRUMBLEOBJ
+	{
+		"MT_CRUMBLEOBJ",
 		-1,             // doomednum
 		S_CRUMBLE1,     // spawnstate
 		1000,           // spawnhealth
@@ -20578,7 +21192,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 	// Waypoint for zoom tubes
-	{           // MT_TUBEWAYPOINT
+	{
+		"MT_TUBEWAYPOINT",
 		753,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20606,7 +21221,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 
 	// for use with wind and current effects
-	{           // MT_PUSH
+	{
+		"MT_PUSH",
 		754,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20633,7 +21249,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GHOST
+	{
+		"MT_GHOST",
 		-1,             // doomednum
 		S_THOK,         // spawnstate
 		1,              // spawnhealth
@@ -20660,7 +21277,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_OVERLAY
+	{
+		"MT_OVERLAY",
 		-1,             // doomednum
 		S_NULL,         // spawnstate
 		1,              // spawnhealth
@@ -20687,7 +21305,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ANGLEMAN
+	{
+		"MT_ANGLEMAN",
 		758,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20714,7 +21333,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POLYANCHOR
+	{
+		"MT_POLYANCHOR",
 		760,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -20741,7 +21361,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_POLYSPAWN
+	{
+		"MT_POLYSPAWN",
 		761,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1,              // spawnhealth
@@ -20768,7 +21389,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SKYBOX
+	{
+		"MT_SKYBOX",
 		780,            // doomednum
 		S_INVISIBLE,    // spawnstate
 		1000,           // spawnhealth
@@ -20795,7 +21417,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_SPARK
+	{
+		"MT_SPARK",
 		-1,             // doomednum
 		S_SPRK1,        // spawnstate
 		1000,           // spawnhealth
@@ -20822,7 +21445,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_EXPLODE
+	{
+		"MT_EXPLODE",
 		-1,             // doomednum
 		S_XPLD1,        // spawnstate
 		1,              // spawnhealth
@@ -20849,7 +21473,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_UWEXPLODE
+	{
+		"MT_UWEXPLODE",
 		-1,             // doomednum
 		S_WPLD1,        // spawnstate
 		1,              // spawnhealth
@@ -20876,7 +21501,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_DUST
+	{
+		"MT_DUST",
 		-1,             // doomednum
 		S_DUST1,     // spawnstate
 		1000,           // spawnhealth
@@ -20903,7 +21529,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKSPAWNER
+	{
+		"MT_ROCKSPAWNER",
 		1202,           // doomednum
 		S_ROCKSPAWN,    // spawnstate
 		1000,           // spawnhealth
@@ -20930,7 +21557,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_FALLINGROCK
+	{
+		"MT_FALLINGROCK",
 		-1,             // doomednum
 		S_ROCKCRUMBLEA, // spawnstate
 		1000,           // spawnhealth
@@ -20957,7 +21585,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE1
+	{
+		"MT_ROCKCRUMBLE1",
 		-1,             // doomednum
 		S_ROCKCRUMBLEA, // spawnstate
 		1000,           // spawnhealth
@@ -20984,7 +21613,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE2
+	{
+		"MT_ROCKCRUMBLE2",
 		-1,             // doomednum
 		S_ROCKCRUMBLEB, // spawnstate
 		1000,           // spawnhealth
@@ -21011,7 +21641,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE3
+	{
+		"MT_ROCKCRUMBLE3",
 		-1,             // doomednum
 		S_ROCKCRUMBLEC, //spawnstate
 		1000,           // spawnhealth
@@ -21038,7 +21669,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE4
+	{
+		"MT_ROCKCRUMBLE4",
 		-1,             // doomednum
 		S_ROCKCRUMBLED, // spawnstate
 		1000,           // spawnhealth
@@ -21065,7 +21697,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE5
+	{
+		"MT_ROCKCRUMBLE5",
 		-1,             // doomednum
 		S_ROCKCRUMBLEE, // spawnstate
 		1000,           // spawnhealth
@@ -21092,7 +21725,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE6
+	{
+		"MT_ROCKCRUMBLE6",
 		-1,             // doomednum
 		S_ROCKCRUMBLEF, // spawnstate
 		1000,           // spawnhealth
@@ -21119,7 +21753,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE7
+	{
+		"MT_ROCKCRUMBLE7",
 		-1,             // doomednum
 		S_ROCKCRUMBLEG, // spawnstate
 		1000,           // spawnhealth
@@ -21146,7 +21781,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE8
+	{
+		"MT_ROCKCRUMBLE8",
 		-1,             // doomednum
 		S_ROCKCRUMBLEH, // spawnstate
 		1000,           // spawnhealth
@@ -21173,7 +21809,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE9
+	{
+		"MT_ROCKCRUMBLE9",
 		-1,             // doomednum
 		S_ROCKCRUMBLEI, // spawnstate
 		1000,           // spawnhealth
@@ -21200,7 +21837,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE10
+	{
+		"MT_ROCKCRUMBLE10",
 		-1,             // doomednum
 		S_ROCKCRUMBLEJ, // spawnstate
 		1000,           // spawnhealth
@@ -21227,7 +21865,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE11
+	{
+		"MT_ROCKCRUMBLE11",
 		-1,             // doomednum
 		S_ROCKCRUMBLEK, // spawnstate
 		1000,           // spawnhealth
@@ -21254,7 +21893,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE12
+	{
+		"MT_ROCKCRUMBLE12",
 		-1,             // doomednum
 		S_ROCKCRUMBLEL, // spawnstate
 		1000,           // spawnhealth
@@ -21281,7 +21921,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE13
+	{
+		"MT_ROCKCRUMBLE13",
 		-1,             // doomednum
 		S_ROCKCRUMBLEM, // spawnstate
 		1000,           // spawnhealth
@@ -21308,7 +21949,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE14
+	{
+		"MT_ROCKCRUMBLE14",
 		-1,             // doomednum
 		S_ROCKCRUMBLEN, // spawnstate
 		1000,           // spawnhealth
@@ -21335,7 +21977,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE15
+	{
+		"MT_ROCKCRUMBLE15",
 		-1,             // doomednum
 		S_ROCKCRUMBLEO, // spawnstate
 		1000,           // spawnhealth
@@ -21362,7 +22005,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_ROCKCRUMBLE16
+	{
+		"MT_ROCKCRUMBLE16",
 		-1,             // doomednum
 		S_ROCKCRUMBLEP, // spawnstate
 		1000,           // spawnhealth
@@ -21389,7 +22033,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_GFZDEBRIS
+	{
+		"MT_GFZDEBRIS",
 		-1,             // doomednum
 		S_GFZDEBRIS,    // spawnstate
 		1,              // spawnhealth
@@ -21416,7 +22061,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BRICKDEBRIS
+	{
+		"MT_BRICKDEBRIS",
 		-1,             // doomednum
 		S_BRICKDEBRIS,  // spawnstate
 		1,              // spawnhealth
@@ -21443,7 +22089,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_WOODDEBRIS
+	{
+		"MT_WOODDEBRIS",
 		-1,             // doomednum
 		S_WOODDEBRIS,   // spawnstate
 		1,              // spawnhealth
@@ -21470,7 +22117,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_REDBRICKDEBRIS
+	{
+		"MT_REDBRICKDEBRIS",
 		-1,             // doomednum
 		S_REDBRICKDEBRIS,    // spawnstate
 		1,              // spawnhealth
@@ -21497,7 +22145,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_BLUEBRICKDEBRIS
+	{
+		"MT_BLUEBRICKDEBRIS",
 		-1,             // doomednum
 		S_BLUEBRICKDEBRIS,    // spawnstate
 		1,              // spawnhealth
@@ -21524,7 +22173,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_YELLOWBRICKDEBRIS
+	{
+		"MT_YELLOWBRICKDEBRIS",
 		-1,             // doomednum
 		S_YELLOWBRICKDEBRIS,    // spawnstate
 		1,              // spawnhealth
@@ -21551,7 +22201,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_NAMECHECK
+	{
+		"MT_NAMECHECK",
 		-1,             // doomednum
 		S_NAMECHECK,    // spawnstate
 		1000,           // spawnhealth
@@ -21578,7 +22229,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 		S_NULL          // raisestate
 	},
 
-	{           // MT_RAY
+	{
+		"MT_RAY",
 		-1,             // doomednum
 		S_NULL,         // spawnstate
 		0,              // spawnhealth
@@ -21606,6 +22258,9 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 	},
 };
 
+mobjinfo_t **mobjinfo;
+size_t nummobjinfo;
+
 skincolor_t skincolors[MAXSKINCOLORS] = {
 	{"None", {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, SKINCOLOR_NONE, 0, 0, false}, // SKINCOLOR_NONE
 
@@ -21811,31 +22466,59 @@ void P_PatchInfoTables(void)
 	}
 	sprnames[i][0] = '\0'; // i == NUMSPRITES
 	memset(&states[S_FIRSTFREESLOT], 0, sizeof (state_t) * NUMSTATEFREESLOTS);
-	memset(&mobjinfo[MT_FIRSTFREESLOT], 0, sizeof (mobjinfo_t) * NUMMOBJFREESLOTS);
 	memset(&skincolors[SKINCOLOR_FIRSTFREESLOT], 0, sizeof (skincolor_t) * NUMCOLORFREESLOTS);
 	for (i = SKINCOLOR_FIRSTFREESLOT; i <= SKINCOLOR_LASTFREESLOT; i++) {
 		skincolors[i].accessible = false;
 		skincolors[i].name[0] = '\0';
 	}
-	for (i = MT_FIRSTFREESLOT; i <= MT_LASTFREESLOT; i++)
-		mobjinfo[i].doomednum = -1;
 }
 
 #ifdef ALLOW_RESETDATA
 static char *sprnamesbackup;
 static state_t *statesbackup;
-static mobjinfo_t *mobjinfobackup;
 static skincolor_t *skincolorsbackup;
-static size_t sprnamesbackupsize, statesbackupsize, mobjinfobackupsize, skincolorsbackupsize;
+static size_t sprnamesbackupsize, statesbackupsize, skincolorsbackupsize;
 #endif
 
+UINT32 P_AllocateMobjinfo(const char *name)
+{
+	mobjinfo = Z_Realloc(mobjinfo, sizeof(*mobjinfo) * ++nummobjinfo, PU_STATIC, NULL);
+	mobjinfo[nummobjinfo-1] = Z_Malloc(sizeof(mobjinfo_t), PU_STATIC, NULL);
+	memset(mobjinfo[nummobjinfo-1], 0, sizeof(mobjinfo_t));
+	mobjinfo[nummobjinfo-1]->name = name;
+	mobjinfo[nummobjinfo-1]->doomednum = -1;
+	return nummobjinfo-1;
+}
+
+UINT32 P_GetMobjinfoIndex(mobjinfo_t *info)
+{
+	size_t i;
+	for (i = 0; i < nummobjinfo; i++)
+	{
+		if (mobjinfo[i] == info)
+			return i;
+	}
+	I_Error("Tried to get index of an invalid mobjinfo_t!");
+}
+
+void P_InitializeTables(void)
+{
+	size_t i;
+	nummobjinfo = sizeof(startmobjinfo) / sizeof(startmobjinfo[0]);
+	mobjinfo = Z_Malloc(sizeof(*mobjinfo) * nummobjinfo, PU_STATIC, NULL);
+	for (i = 0; i < nummobjinfo; i++)
+	{
+		mobjinfo[i] = Z_Malloc(sizeof(mobjinfo_t), PU_STATIC, NULL);
+		memcpy(mobjinfo[i], &startmobjinfo[i], sizeof(mobjinfo_t));
+	}
+}
+
 void P_BackupTables(void)
 {
 #ifdef ALLOW_RESETDATA
 	// Allocate buffers in size equal to that of the uncompressed data to begin with
 	sprnamesbackup = Z_Malloc(sizeof(sprnames), PU_STATIC, NULL);
 	statesbackup = Z_Malloc(sizeof(states), PU_STATIC, NULL);
-	mobjinfobackup = Z_Malloc(sizeof(mobjinfo), PU_STATIC, NULL);
 	skincolorsbackup = Z_Malloc(sizeof(skincolors), PU_STATIC, NULL);
 
 	// Sprite names
@@ -21852,13 +22535,6 @@ void P_BackupTables(void)
 	else
 		M_Memcpy(statesbackup, states, sizeof(states));
 
-	// Mobj info
-	mobjinfobackupsize = lzf_compress(mobjinfo, sizeof(mobjinfo), mobjinfobackup, sizeof(mobjinfo));
-	if (mobjinfobackupsize > 0)
-		mobjinfobackup = Z_Realloc(mobjinfobackup, mobjinfobackupsize, PU_STATIC, NULL);
-	else
-		M_Memcpy(mobjinfobackup, mobjinfo, sizeof(mobjinfo));
-
 	//Skincolor info
 	skincolorsbackupsize = lzf_compress(skincolors, sizeof(skincolors), skincolorsbackup, sizeof(skincolors));
 	if (skincolorsbackupsize > 0)
@@ -21892,10 +22568,11 @@ void P_ResetData(INT32 flags)
 
 	if (flags & 4)
 	{
-		if (mobjinfobackupsize > 0)
-			lzf_decompress(mobjinfobackup, mobjinfobackupsize, mobjinfo, sizeof(mobjinfo));
-		else
-			M_Memcpy(mobjinfo, mobjinfobackup, sizeof(mobjinfobackup));
+		size_t i;
+		for (i = 0; i < sizeof(startmobjinfo) / sizeof(startmobjinfo[0]); i++)
+		{
+			memcpy(mobjinfo[i], &startmobjinfo[i], sizeof(mobjinfo_t));
+		}
 	}
 
 	if (flags & 8)
diff --git a/src/info.h b/src/info.h
index 0361f64281150bec03676bd1b8a4baa36a18de22..63f48eb8d79106ebe5648b27bc852cad433c6519 100644
--- a/src/info.h
+++ b/src/info.h
@@ -5163,14 +5163,11 @@ typedef enum mobj_type
 
 	MT_NAMECHECK,
 	MT_RAY, // General purpose mobj
-
-	MT_FIRSTFREESLOT,
-	MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
-	NUMMOBJTYPES
 } mobjtype_t;
 
 typedef struct
 {
+	const char *name;
 	INT32 doomednum;
 	statenum_t spawnstate;
 	INT32 spawnhealth;
@@ -5197,7 +5194,12 @@ typedef struct
 	statenum_t raisestate;
 } mobjinfo_t;
 
-extern mobjinfo_t mobjinfo[NUMMOBJTYPES];
+extern mobjinfo_t **mobjinfo;
+extern size_t nummobjinfo;
+
+UINT32 P_AllocateMobjinfo(const char *name);
+UINT32 P_GetMobjinfoIndex(mobjinfo_t *info);
+void P_InitializeTables(void);
 
 void P_PatchInfoTables(void);
 
diff --git a/src/lua_baselib.c b/src/lua_baselib.c
index f6b8f462b5a41cee30c33145fd62fa28daa01e92..ae6722c64ccbf33550297bcde600f1f1eb2e33be 100644
--- a/src/lua_baselib.c
+++ b/src/lua_baselib.c
@@ -44,8 +44,8 @@ return luaL_error(L, "HUD rendering code should not call this function!");\
 else if (hook_cmd_running)\
 return luaL_error(L, "CMD building code should not call this function!");
 
-#define NOSPAWNNULL if (type >= NUMMOBJTYPES)\
-return luaL_error(L, "mobj type %d out of range (0 - %d)", type, NUMMOBJTYPES-1);\
+#define NOSPAWNNULL if (type >= nummobjinfo)\
+return luaL_error(L, "mobj type %d out of range (0 - %zu)", type, nummobjinfo-1);\
 else if (type == MT_NULL)\
 {\
 	if (!nospawnnull_seen) {\
@@ -56,8 +56,8 @@ type = MT_RAY;\
 }
 static boolean nospawnnull_seen = false; // TODO: 2.3: Delete
 // TODO: 2.3: Use the below NOSPAWNNULL define instead. P_SpawnMobj used to say "if MT_NULL, use MT_RAY instead", so the above define maintains Lua script compatibility until v2.3
-/*#define NOSPAWNNULL if (type <= MT_NULL || type >= NUMMOBJTYPES)\
-return luaL_error(L, "mobj type %d out of range (1 - %d)", type, NUMMOBJTYPES-1);*/
+/*#define NOSPAWNNULL if (type <= MT_NULL || type >= nummobjinfo)\
+return luaL_error(L, "mobj type %d out of range (1 - %d)", type, nummobjinfo-1);*/
 
 boolean luaL_checkboolean(lua_State *L, int narg) {
 	luaL_checktype(L, narg, LUA_TBOOLEAN);
diff --git a/src/lua_hooklib.c b/src/lua_hooklib.c
index 54381e4aedc47a64d89190f5582c3c5856634ba6..d185d1b96216ae03973a43f4f8ee91c08cd1b843 100644
--- a/src/lua_hooklib.c
+++ b/src/lua_hooklib.c
@@ -53,7 +53,8 @@ typedef struct {
 
 static hook_t hookIds[HOOK(MAX)];
 static hook_t hudHookIds[HUD_HOOK(MAX)];
-static hook_t mobjHookIds[NUMMOBJTYPES][MOBJ_HOOK(MAX)];
+static hook_t (*mobjHookIds)[MOBJ_HOOK(MAX)];
+static size_t numMobjHookIds;
 
 // Lua tables are used to lookup string hook ids.
 static stringhook_t stringHooks[STRING_HOOK(MAX)];
@@ -69,10 +70,10 @@ static int errorRef;
 
 static boolean mobj_hook_available(int hook_type, mobjtype_t mobj_type)
 {
-	return
+	return mobj_type < numMobjHookIds &&
 		(
 				mobjHookIds [MT_NULL] [hook_type].numHooks > 0 ||
-				(mobj_type < NUMMOBJTYPES && mobjHookIds[mobj_type][hook_type].numHooks > 0)
+				(mobj_type < nummobjinfo && mobjHookIds[mobj_type][hook_type].numHooks > 0)
 		);
 }
 
@@ -159,8 +160,8 @@ static void add_string_hook(lua_State *L, int type)
 
 static void add_hook(hook_t *map)
 {
-	Z_Realloc(map->ids, (map->numHooks + 1) * sizeof *map->ids,
-			PU_STATIC, &map->ids);
+	map->ids = Z_Realloc(map->ids, (map->numHooks + 1) * sizeof *map->ids,
+			PU_STATIC, NULL);
 	map->ids[map->numHooks++] = nextid;
 }
 
@@ -168,8 +169,14 @@ static void add_mobj_hook(lua_State *L, int hook_type)
 {
 	mobjtype_t   mobj_type = luaL_optnumber(L, 3, MT_NULL);
 
-	luaL_argcheck(L, mobj_type < NUMMOBJTYPES, 3, "invalid mobjtype_t");
+	luaL_argcheck(L, mobj_type < nummobjinfo, 3, "invalid mobjtype_t");
 
+	if (mobj_type >= numMobjHookIds)
+	{
+		mobjHookIds = Z_Realloc(mobjHookIds, (mobj_type+1) * sizeof(*mobjHookIds), PU_STATIC, NULL);
+		memset(&mobjHookIds[numMobjHookIds], 0, (mobj_type+1-numMobjHookIds) * sizeof(*mobjHookIds));
+		numMobjHookIds = mobj_type+1;
+	}
 	add_hook(&mobjHookIds[mobj_type][hook_type]);
 }
 
@@ -346,7 +353,7 @@ static boolean prepare_mobj_hook
 		mobj_t     * primary_mobj
 ){
 	const mobjtype_t mobj_type =
-		primary_mobj ? primary_mobj->type : NUMMOBJTYPES;
+		primary_mobj ? primary_mobj->type : nummobjinfo;
 
 #ifdef PARANOIA
 	if (mobj_type == MT_NULL)
@@ -535,7 +542,7 @@ static int call_hooks
 		/* call generic mobj hooks first */
 		calls += call_mobj_type_hooks(hook, MT_NULL);
 
-		if (hook->mobj_type < NUMMOBJTYPES)
+		if (hook->mobj_type < nummobjinfo)
 			calls += call_mobj_type_hooks(hook, hook->mobj_type);
 
 		ps_lua_mobjhooks.value.i += calls;
diff --git a/src/lua_infolib.c b/src/lua_infolib.c
index eeb1067a335f121f23d89bcf817a0b54f53f4f41..a687dad197adc979ba12f296d7ceab786baab581 100644
--- a/src/lua_infolib.c
+++ b/src/lua_infolib.c
@@ -1026,9 +1026,9 @@ static int lib_getMobjInfo(lua_State *L)
 	lua_remove(L, 1);
 
 	i = luaL_checkinteger(L, 1);
-	if (i >= NUMMOBJTYPES)
-		return luaL_error(L, "mobjinfo[] index %d out of range (0 - %d)", i, NUMMOBJTYPES-1);
-	LUA_PushUserdata(L, &mobjinfo[i], META_MOBJINFO);
+	if (i >= nummobjinfo)
+		return luaL_error(L, "mobjinfo[] index %d out of range (0 - %zu)", i, nummobjinfo-1);
+	LUA_PushUserdata(L, mobjinfo[i], META_MOBJINFO);
 	return 1;
 }
 
@@ -1036,12 +1036,13 @@ static int lib_getMobjInfo(lua_State *L)
 static int lib_setMobjInfo(lua_State *L)
 {
 	mobjinfo_t *info;
+	const char *name;
 	lua_remove(L, 1); // don't care about mobjinfo[] userdata.
 	{
 		UINT32 i = luaL_checkinteger(L, 1);
-		if (i >= NUMMOBJTYPES)
-			return luaL_error(L, "mobjinfo[] index %d out of range (0 - %d)", i, NUMMOBJTYPES-1);
-		info = &mobjinfo[i]; // get the mobjinfo to assign to.
+		if (i >= nummobjinfo)
+			return luaL_error(L, "mobjinfo[] index %d out of range (0 - %zu)", i, nummobjinfo-1);
+		info = mobjinfo[i]; // get the mobjinfo to assign to.
 	}
 	luaL_checktype(L, 2, LUA_TTABLE); // check that we've been passed a table.
 	lua_remove(L, 1); // pop mobjtype num, don't need it any more.
@@ -1053,7 +1054,9 @@ static int lib_setMobjInfo(lua_State *L)
 		return luaL_error(L, "Do not alter mobjinfo in CMD building code!");
 
 	// clear the mobjinfo to start with, in case of missing table elements
+	name = info->name;
 	memset(info,0,sizeof(mobjinfo_t));
+	info->name = name;
 	info->doomednum = -1; // default to no editor value
 	info->spawnhealth = 1; // avoid 'dead' noclip behaviors
 
@@ -1130,10 +1133,10 @@ static int lib_setMobjInfo(lua_State *L)
 	return 0;
 }
 
-// #mobjinfo -> NUMMOBJTYPES
+// #mobjinfo -> nummobjinfo
 static int lib_mobjinfolen(lua_State *L)
 {
-	lua_pushinteger(L, NUMMOBJTYPES);
+	lua_pushinteger(L, nummobjinfo);
 	return 1;
 }
 
@@ -1202,7 +1205,6 @@ static int mobjinfo_get(lua_State *L)
 	enum mobjinfo_e field = Lua_optoption(L, 2, mobjinfo_doomednum, mobjinfo_fields_ref);
 
 	I_Assert(info != NULL);
-	I_Assert(info >= mobjinfo);
 
 	switch (field)
 	{
@@ -1308,7 +1310,6 @@ static int mobjinfo_set(lua_State *L)
 		return luaL_error(L, "Do not alter mobjinfo in CMD building code!");
 
 	I_Assert(info != NULL);
-	I_Assert(info >= mobjinfo);
 
 	switch (field)
 	{
@@ -1407,6 +1408,7 @@ static int mobjinfo_set(lua_State *L)
 }
 
 // mobjinfo_t * -> MT_*
+/*
 static int mobjinfo_num(lua_State *L)
 {
 	mobjinfo_t *info = *((mobjinfo_t **)luaL_checkudata(L, 1, META_MOBJINFO));
@@ -1417,6 +1419,7 @@ static int mobjinfo_num(lua_State *L)
 	lua_pushinteger(L, info-mobjinfo);
 	return 1;
 }
+*/
 
 //////////////
 // SFX INFO //
@@ -1909,7 +1912,7 @@ int LUA_InfoLib(lua_State *L)
 	lua_setfield(L, LUA_REGISTRYINDEX, LREG_ACTIONS);
 
 	LUA_RegisterUserdataMetatable(L, META_STATE, state_get, state_set, state_num);
-	LUA_RegisterUserdataMetatable(L, META_MOBJINFO, mobjinfo_get, mobjinfo_set, mobjinfo_num);
+	LUA_RegisterUserdataMetatable(L, META_MOBJINFO, mobjinfo_get, mobjinfo_set, NULL);
 	LUA_RegisterUserdataMetatable(L, META_SKINCOLOR, skincolor_get, skincolor_set, skincolor_num);
 	LUA_RegisterUserdataMetatable(L, META_COLORRAMP, colorramp_get, colorramp_set, colorramp_len);
 	LUA_RegisterUserdataMetatable(L, META_SFXINFO, sfxinfo_get, sfxinfo_set, sfxinfo_num);
diff --git a/src/lua_mobjlib.c b/src/lua_mobjlib.c
index de7065790abb137e82f505c961215ca6acb10429..f3d28f4669c4c99818441f24a2b9aab4026d3044 100644
--- a/src/lua_mobjlib.c
+++ b/src/lua_mobjlib.c
@@ -384,7 +384,7 @@ static int mobj_get(lua_State *L)
 		lua_pushinteger(L, mo->type);
 		break;
 	case mobj_info:
-		LUA_PushUserdata(L, &mobjinfo[mo->type], META_MOBJINFO);
+		LUA_PushUserdata(L, mobjinfo[mo->type], META_MOBJINFO);
 		break;
 	case mobj_health:
 		lua_pushinteger(L, mo->health);
@@ -758,10 +758,10 @@ static int mobj_set(lua_State *L)
 	case mobj_type: // yeah sure, we'll let you change the mobj's type.
 	{
 		mobjtype_t newtype = luaL_checkinteger(L, 3);
-		if (newtype >= NUMMOBJTYPES)
-			return luaL_error(L, "mobj.type %d out of range (0 - %d).", newtype, NUMMOBJTYPES-1);
+		if (newtype >= nummobjinfo)
+			return luaL_error(L, "mobj.type %d out of range (0 - %zu).", newtype, nummobjinfo-1);
 		mo->type = newtype;
-		mo->info = &mobjinfo[newtype];
+		mo->info = mobjinfo[newtype];
 		P_SetScale(mo, mo->scale, false);
 		break;
 	}
diff --git a/src/lua_script.c b/src/lua_script.c
index 057899555480383611652c552e41bf41398b0e2b..a3702ebedc332e5d853d14f3d334c132cd231562 100644
--- a/src/lua_script.c
+++ b/src/lua_script.c
@@ -1209,7 +1209,7 @@ static UINT8 ArchiveValue(int TABLESINDEX, int myindex)
 		{
 			mobjinfo_t *info = *((mobjinfo_t **)lua_touserdata(gL, myindex));
 			WRITEUINT8(save_p, ARCH_MOBJINFO);
-			WRITEUINT16(save_p, info - mobjinfo);
+			WRITEUINT32(save_p, P_GetMobjinfoIndex(info));
 			break;
 		}
 		case ARCH_STATE:
@@ -1591,7 +1591,7 @@ static UINT8 UnArchiveValue(int TABLESINDEX)
 		break;
 	}
 	case ARCH_MOBJINFO:
-		LUA_PushUserdata(gL, &mobjinfo[READUINT16(save_p)], META_MOBJINFO);
+		LUA_PushUserdata(gL, mobjinfo[READUINT32(save_p)], META_MOBJINFO);
 		break;
 	case ARCH_STATE:
 		LUA_PushUserdata(gL, &states[READUINT16(save_p)], META_STATE);
diff --git a/src/m_cheat.c b/src/m_cheat.c
index 07f10071711025f93f91d7b7ea2d9d65f3d5ad1d..f6d160f4eb8eab841b6ed5caed49a98d82809771 100644
--- a/src/m_cheat.c
+++ b/src/m_cheat.c
@@ -992,36 +992,36 @@ static void OP_CycleThings(INT32 amt)
 		{
 			op_currentthing += add;
 			if (op_currentthing <= 0)
-				op_currentthing = NUMMOBJTYPES-1;
-			if (op_currentthing >= NUMMOBJTYPES)
+				op_currentthing = nummobjinfo-1;
+			if (op_currentthing >= nummobjinfo)
 				op_currentthing = 0;
 		} while
-		(mobjinfo[op_currentthing].doomednum == -1
+		(mobjinfo[op_currentthing]->doomednum == -1
 			|| op_currentthing == MT_NIGHTSDRONE
-			|| mobjinfo[op_currentthing].flags & (MF_AMBIENT|MF_NOSECTOR)
-			|| (states[mobjinfo[op_currentthing].spawnstate].sprite == SPR_NULL
-			 && states[mobjinfo[op_currentthing].seestate].sprite == SPR_NULL)
+			|| mobjinfo[op_currentthing]->flags & (MF_AMBIENT|MF_NOSECTOR)
+			|| (states[mobjinfo[op_currentthing]->spawnstate].sprite == SPR_NULL
+			 && states[mobjinfo[op_currentthing]->seestate].sprite == SPR_NULL)
 		);
 		amt -= add;
 	}
 
 	// HACK, minus has SPR_NULL sprite
-	if (states[mobjinfo[op_currentthing].spawnstate].sprite == SPR_NULL)
+	if (states[mobjinfo[op_currentthing]->spawnstate].sprite == SPR_NULL)
 	{
-		states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing].seestate].sprite;
-		states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing].seestate].frame;
+		states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing]->seestate].sprite;
+		states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing]->seestate].frame;
 	}
 	else
 	{
-		states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing].spawnstate].sprite;
-		states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing].spawnstate].frame;
+		states[S_OBJPLACE_DUMMY].sprite = states[mobjinfo[op_currentthing]->spawnstate].sprite;
+		states[S_OBJPLACE_DUMMY].frame = states[mobjinfo[op_currentthing]->spawnstate].frame;
 	}
 	if (players[0].mo->eflags & MFE_VERTICALFLIP) // correct z when flipped
-		players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale);
-	players[0].mo->height = FixedMul(mobjinfo[op_currentthing].height, players[0].mo->scale);
+		players[0].mo->z += players[0].mo->height - FixedMul(mobjinfo[op_currentthing]->height, players[0].mo->scale);
+	players[0].mo->height = FixedMul(mobjinfo[op_currentthing]->height, players[0].mo->scale);
 	P_SetMobjState(players[0].mo, S_OBJPLACE_DUMMY);
 
-	op_currentdoomednum = mobjinfo[op_currentthing].doomednum;
+	op_currentdoomednum = mobjinfo[op_currentthing]->doomednum;
 }
 
 static boolean OP_HeightOkay(player_t *player, UINT8 ceiling)
@@ -1194,8 +1194,8 @@ void OP_ResetObjectplace(void)
 		if (!OP_HeightOkay(player, false))
 			return;
 
-		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_NIGHTSBUMPER].doomednum, false);
-		mt->z = min(mt->z - (mobjinfo[MT_NIGHTSBUMPER].height/4), 0);
+		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_NIGHTSBUMPER]->doomednum, false);
+		mt->z = min(mt->z - (mobjinfo[MT_NIGHTSBUMPER]->height/4), 0);
 			// height offset: from P_TouchSpecialThing case MT_NIGHTSBUMPER
 
 		// clockwise
@@ -1243,7 +1243,7 @@ void OP_ResetObjectplace(void)
 		if (!OP_HeightOkay(player, false))
 			return;
 
-		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_BLUESPHERE].doomednum, false);
+		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_BLUESPHERE]->doomednum, false);
 		P_SpawnMapThing(mt);
 	}
 
@@ -1254,7 +1254,7 @@ void OP_ResetObjectplace(void)
 		if (!OP_HeightOkay(player, false))
 			return;
 
-		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_RING].doomednum, false);
+		mt = OP_CreateNewMapThing(player, (UINT16)mobjinfo[MT_RING]->doomednum, false);
 		P_SpawnMapThing(mt);
 	}
 
@@ -1352,10 +1352,10 @@ void OP_ObjectplaceMovement(player_t *player)
 	{
 		sector_t *sec = player->mo->subsector->sector;
 
-		if (!!(mobjinfo[op_currentthing].flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP))
+		if (!!(mobjinfo[op_currentthing]->flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP))
 		{
 			fixed_t cheight = P_GetSectorCeilingZAt(sec, player->mo->x & 0xFFFF0000, player->mo->y & 0xFFFF0000);
-			op_displayflags = (UINT16)((cheight - player->mo->z - mobjinfo[op_currentthing].height)>>FRACBITS);
+			op_displayflags = (UINT16)((cheight - player->mo->z - mobjinfo[op_currentthing]->height)>>FRACBITS);
 		}
 		else
 		{
@@ -1401,19 +1401,19 @@ void OP_ObjectplaceMovement(player_t *player)
 		if (cv_mapthingnum.value > 0 && cv_mapthingnum.value < 4096)
 		{
 			// find which type to spawn
-			for (spawnmid = 0; spawnmid < NUMMOBJTYPES; ++spawnmid)
-				if (cv_mapthingnum.value == mobjinfo[spawnmid].doomednum)
+			for (spawnmid = 0; spawnmid < nummobjinfo; ++spawnmid)
+				if (cv_mapthingnum.value == mobjinfo[spawnmid]->doomednum)
 					break;
 
-			if (spawnmid == NUMMOBJTYPES)
+			if (spawnmid == nummobjinfo)
 			{
 				CONS_Alert(CONS_ERROR, M_GetText("Can't place an object with mapthingnum %d.\n"), cv_mapthingnum.value);
 				return;
 			}
-			spawnthing = mobjinfo[spawnmid].doomednum;
+			spawnthing = mobjinfo[spawnmid]->doomednum;
 		}
 
-		ceiling = !!(mobjinfo[spawnmid].flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP);
+		ceiling = !!(mobjinfo[spawnmid]->flags & MF_SPAWNCEILING) ^ !!(cv_opflags.value & MTF_OBJECTFLIP);
 		if (!OP_HeightOkay(player, ceiling))
 			return;
 
@@ -1516,7 +1516,7 @@ void Command_ObjectPlace_f(void)
 			{
 				players[0].mo->health = 1;
 				players[0].deadtimer = 0;
-				op_oldflags1 = mobjinfo[MT_PLAYER].flags;
+				op_oldflags1 = mobjinfo[MT_PLAYER]->flags;
 				++players[0].lives;
 				players[0].playerstate = PST_LIVE;
 				P_RestoreMusic(&players[0]);
diff --git a/src/m_menu.c b/src/m_menu.c
index 50011347550c32622238ef02a6d538be62bbb31f..57543842db88e63836d8987336c39c3ae61b9f57 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -12131,7 +12131,7 @@ static void M_SetPlayerSetupFollowItem(void)
 			multi_followitem_duration = state->var2 * FRACUNIT;
 			multi_followitem_tics = multi_tics % multi_followitem_duration;
 			multi_followitem_scale = 2 * FRACUNIT / 3;
-			multi_followitem_yoffset = (skins[setupm_fakeskin]->height - FixedMul(mobjinfo[followitem].height, multi_followitem_scale)) >> 1;
+			multi_followitem_yoffset = (skins[setupm_fakeskin]->height - FixedMul(mobjinfo[followitem]->height, multi_followitem_scale)) >> 1;
 			break;
 		}
 		default:
diff --git a/src/p_enemy.c b/src/p_enemy.c
index 4990db6fd50a2f96102056984b4d02e3c0205ddb..199de4bc15789cb84aa30b88b561b14d95341a36 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -1453,7 +1453,7 @@ void A_StatueBurst(mobj_t *actor)
 
 	{
 		fixed_t a, b;
-		fixed_t c = (actor->height>>2) - FixedMul(actor->scale, mobjinfo[chunktype].height>>1);
+		fixed_t c = (actor->height>>2) - FixedMul(actor->scale, mobjinfo[chunktype]->height>>1);
 		fixed_t v = 4<<FRACBITS;
 		const fixed_t r = (actor->radius>>1);
 		mobj_t *spawned;
@@ -2751,9 +2751,9 @@ void A_LobShot(mobj_t *actor)
 	{
 		z = actor->z + actor->height - FixedMul(locvar2*FRACUNIT, actor->scale);
 		if (actor->type == MT_BLACKEGGMAN)
-			z -= FixedMul(mobjinfo[locvar1].height, actor->scale/2);
+			z -= FixedMul(mobjinfo[locvar1]->height, actor->scale/2);
 		else
-			z -= FixedMul(mobjinfo[locvar1].height, actor->scale);
+			z -= FixedMul(mobjinfo[locvar1]->height, actor->scale);
 	}
 	else
 		z = actor->z + FixedMul(locvar2*FRACUNIT, actor->scale);
@@ -3104,7 +3104,7 @@ void A_Boss1Laser(mobj_t *actor)
 			x = actor->x + P_ReturnThrustX(actor, actor->angle+ANGLE_90, FixedMul(44*FRACUNIT, actor->scale));
 			y = actor->y + P_ReturnThrustY(actor, actor->angle+ANGLE_90, FixedMul(44*FRACUNIT, actor->scale));
 			if (actor->eflags & MFE_VERTICALFLIP)
-				z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1].height;
+				z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1]->height;
 			else
 				z = actor->z + FixedMul(56*FRACUNIT, actor->scale);
 			break;
@@ -3112,7 +3112,7 @@ void A_Boss1Laser(mobj_t *actor)
 			x = actor->x + P_ReturnThrustX(actor, actor->angle-ANGLE_90, FixedMul(44*FRACUNIT, actor->scale));
 			y = actor->y + P_ReturnThrustY(actor, actor->angle-ANGLE_90, FixedMul(44*FRACUNIT, actor->scale));
 			if (actor->eflags & MFE_VERTICALFLIP)
-				z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1].height;
+				z = actor->z + actor->height - FixedMul(56*FRACUNIT, actor->scale) - mobjinfo[locvar1]->height;
 			else
 				z = actor->z + FixedMul(56*FRACUNIT, actor->scale);
 			break;
@@ -3140,8 +3140,8 @@ void A_Boss1Laser(mobj_t *actor)
 	if (!(actor->flags2 & MF2_FIRING) && dur > 1)
 	{
 		actor->angle = R_PointToAngle2(x, y, actor->target->x, actor->target->y);
-		if (mobjinfo[locvar1].seesound)
-			S_StartSound(actor, mobjinfo[locvar1].seesound);
+		if (mobjinfo[locvar1]->seesound)
+			S_StartSound(actor, mobjinfo[locvar1]->seesound);
 
 		point = P_SpawnMobj(x + P_ReturnThrustX(actor, actor->angle, actor->radius), y + P_ReturnThrustY(actor, actor->angle, actor->radius), actor->z - actor->height / 2, MT_EGGMOBILE_TARGET);
 		if (!P_MobjWasRemoved(point))
@@ -3153,7 +3153,7 @@ void A_Boss1Laser(mobj_t *actor)
 		}
 	}
 
-	angle = R_PointToAngle2(z + (mobjinfo[locvar1].height>>1), 0, actor->target->z, R_PointToDist2(x, y, actor->target->x, actor->target->y));
+	angle = R_PointToAngle2(z + (mobjinfo[locvar1]->height>>1), 0, actor->target->z, R_PointToDist2(x, y, actor->target->x, actor->target->y));
 
 	point = P_SpawnMobj(x, y, z, locvar1);
 	if (P_MobjWasRemoved(point))
@@ -3203,8 +3203,8 @@ void A_Boss1Laser(mobj_t *actor)
 
 	x += point->momx;
 	y += point->momy;
-	floorz = P_FloorzAtPos(x, y, z, mobjinfo[MT_EGGMOBILE_FIRE].height);
-	if (z - floorz < mobjinfo[MT_EGGMOBILE_FIRE].height>>1 && dur & 1)
+	floorz = P_FloorzAtPos(x, y, z, mobjinfo[MT_EGGMOBILE_FIRE]->height);
+	if (z - floorz < mobjinfo[MT_EGGMOBILE_FIRE]->height>>1 && dur & 1)
 	{
 		point = P_SpawnMobj(x, y, floorz, MT_EGGMOBILE_FIRE);
 		if (!P_MobjWasRemoved(point))
@@ -3218,7 +3218,7 @@ void A_Boss1Laser(mobj_t *actor)
 				for (i = 0; i < 2; i++)
 				{
 					UINT8 size = 3;
-					mobj_t *steam = P_SpawnMobj(x, y, point->watertop - size*mobjinfo[MT_DUST].height, MT_DUST);
+					mobj_t *steam = P_SpawnMobj(x, y, point->watertop - size*mobjinfo[MT_DUST]->height, MT_DUST);
 					if (P_MobjWasRemoved(steam))
 						continue;
 					P_SetScale(steam, size*actor->scale, false);
@@ -3429,18 +3429,18 @@ void A_SkullAttack(mobj_t *actor)
 		actor->angle += (P_RandomChance(FRACUNIT/2)) ? ANGLE_90 : -ANGLE_90;
 	else if (locvar1 == 3)
 	{
-		statenum_t oldspawnstate = mobjinfo[MT_RAY].spawnstate;
-		UINT32 oldflags = mobjinfo[MT_RAY].flags;
-		fixed_t oldradius = mobjinfo[MT_RAY].radius;
-		fixed_t oldheight = mobjinfo[MT_RAY].height;
+		statenum_t oldspawnstate = mobjinfo[MT_RAY]->spawnstate;
+		UINT32 oldflags = mobjinfo[MT_RAY]->flags;
+		fixed_t oldradius = mobjinfo[MT_RAY]->radius;
+		fixed_t oldheight = mobjinfo[MT_RAY]->height;
 		INT32 i, j;
 		static INT32 k;/* static for (at least) GCC 9.1 weirdness */
 		angle_t testang = 0;
 
-		mobjinfo[MT_RAY].spawnstate = S_INVISIBLE;
-		mobjinfo[MT_RAY].flags = MF_NOGRAVITY|MF_NOTHINK|MF_NOCLIPTHING|MF_NOBLOCKMAP;
-		mobjinfo[MT_RAY].radius = mobjinfo[actor->type].radius;
-		mobjinfo[MT_RAY].height = mobjinfo[actor->type].height;
+		mobjinfo[MT_RAY]->spawnstate = S_INVISIBLE;
+		mobjinfo[MT_RAY]->flags = MF_NOGRAVITY|MF_NOTHINK|MF_NOCLIPTHING|MF_NOBLOCKMAP;
+		mobjinfo[MT_RAY]->radius = mobjinfo[actor->type]->radius;
+		mobjinfo[MT_RAY]->height = mobjinfo[actor->type]->height;
 
 		if (P_RandomChance(FRACUNIT/2)) // port priority 1?
 		{
@@ -3484,10 +3484,10 @@ void A_SkullAttack(mobj_t *actor)
 
 #undef dostuff
 
-		mobjinfo[MT_RAY].spawnstate = oldspawnstate;
-		mobjinfo[MT_RAY].flags = oldflags;
-		mobjinfo[MT_RAY].radius = oldradius;
-		mobjinfo[MT_RAY].height = oldheight;
+		mobjinfo[MT_RAY]->spawnstate = oldspawnstate;
+		mobjinfo[MT_RAY]->flags = oldflags;
+		mobjinfo[MT_RAY]->radius = oldradius;
+		mobjinfo[MT_RAY]->height = oldheight;
 	}
 
 	an = actor->angle >> ANGLETOFINESHIFT;
@@ -3578,15 +3578,15 @@ void A_BossScream(mobj_t *actor)
 	y = actor->y + FixedMul(FINESINE(fa),actor->radius);
 
 	// Determine what mobj to spawn. If undefined or invalid, use MT_BOSSEXPLODE as default.
-	if (locvar2 <= 0 || locvar2 >= NUMMOBJTYPES)
+	if (locvar2 <= 0 || (size_t)locvar2 >= nummobjinfo)
 		explodetype = MT_SONIC3KBOSSEXPLODE; //MT_BOSSEXPLODE; -- piss to you, sonic 2
 	else
 		explodetype = (mobjtype_t)locvar2;
 
 	if (locvar1 & 2)
-		z = actor->z + (P_RandomKey((actor->height - mobjinfo[explodetype].height)>>FRACBITS)<<FRACBITS);
+		z = actor->z + (P_RandomKey((actor->height - mobjinfo[explodetype]->height)>>FRACBITS)<<FRACBITS);
 	else if (actor->eflags & MFE_VERTICALFLIP)
-		z = actor->z + actor->height - mobjinfo[explodetype].height - FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale);
+		z = actor->z + actor->height - mobjinfo[explodetype]->height - FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale);
 	else
 		z = actor->z + FixedMul((P_RandomByte()<<(FRACBITS-2)) - 8*FRACUNIT, actor->scale);
 
@@ -4131,7 +4131,7 @@ static void P_SpawnBoss2Junk(mobj_t *mo)
 	}
 
 	mo2 = P_SpawnMobjFromMobj(mo, 0, 0,
-		mobjinfo[MT_EGGMOBILE2].height + (32<<FRACBITS),
+		mobjinfo[MT_EGGMOBILE2]->height + (32<<FRACBITS),
 		MT_BOSSJUNK);
 	if (!P_MobjWasRemoved(mo2))
 	{
@@ -4950,7 +4950,7 @@ void A_DropMine(mobj_t *actor)
 	}
 
 	if (actor->eflags & MFE_VERTICALFLIP)
-		z = actor->z + actor->height - mobjinfo[actor->info->raisestate].height - FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale);
+		z = actor->z + actor->height - mobjinfo[actor->info->raisestate]->height - FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale);
 	else
 		z = actor->z + FixedMul((locvar1*FRACUNIT) - 12*FRACUNIT, actor->scale);
 
@@ -5493,7 +5493,7 @@ void A_OverlayThink(mobj_t *actor)
 	actor->y = desty;
 	P_SetThingPosition(actor);
 	if (actor->eflags & MFE_VERTICALFLIP)
-		actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type].height  - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
+		actor->z = actor->target->z + actor->target->height - mobjinfo[actor->type]->height  - ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
 	else
 		actor->z = actor->target->z + ((var2>>16) ? -1 : 1)*(var2&0xFFFF)*FRACUNIT;
 	actor->angle = (actor->target->player ? actor->target->player->drawangle : actor->target->angle) + actor->movedir;
@@ -6430,7 +6430,7 @@ void A_RockSpawn(mobj_t *actor)
 
 	type = actor->spawnpoint->stringargs[0] ? get_number(actor->spawnpoint->stringargs[0]) : MT_ROCKCRUMBLE1;
 
-	if (type < MT_NULL || type >= NUMMOBJTYPES)
+	if (type < MT_NULL || type >= nummobjinfo)
 	{
 		CONS_Debug(DBG_GAMELOGIC, "A_RockSpawn: Invalid mobj type %s!\n", actor->spawnpoint->stringargs[0]);
 		return;
@@ -6443,7 +6443,7 @@ void A_RockSpawn(mobj_t *actor)
 	mo = P_SpawnMobj(actor->x, actor->y, actor->z, MT_FALLINGROCK);
 	if (P_MobjWasRemoved(mo))
 		return;
-	P_SetMobjState(mo, mobjinfo[type].spawnstate);
+	P_SetMobjState(mo, mobjinfo[type]->spawnstate);
 	mo->angle = FixedAngle(actor->spawnpoint->angle << FRACBITS);
 
 	P_InstaThrust(mo, mo->angle, dist);
@@ -7844,7 +7844,7 @@ void A_Boss2PogoTarget(mobj_t *actor)
 
 	if (actor->info->missilestate) // spawn the pogo stick collision box
 	{
-		mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate].height, (mobjtype_t)actor->info->missilestate);
+		mobj_t *pogo = P_SpawnMobj(actor->x, actor->y, actor->z - mobjinfo[actor->info->missilestate]->height, (mobjtype_t)actor->info->missilestate);
 		if (!P_MobjWasRemoved(pogo))
 			P_SetTarget(&pogo->target, actor);
 	}
@@ -8737,7 +8737,7 @@ void A_SmokeTrailer(mobj_t *actor)
 	// add the smoke behind the rocket
 	if (actor->eflags & MFE_VERTICALFLIP)
 	{
-		th = P_SpawnMobj(actor->x-actor->momx, actor->y-actor->momy, actor->z + actor->height - FixedMul(mobjinfo[locvar1].height, actor->scale), locvar1);
+		th = P_SpawnMobj(actor->x-actor->momx, actor->y-actor->momy, actor->z + actor->height - FixedMul(mobjinfo[locvar1]->height, actor->scale), locvar1);
 		if (!P_MobjWasRemoved(th))
 			th->flags2 |= MF2_OBJECTFLIP;
 	}
@@ -8823,7 +8823,7 @@ void A_SpawnObjectRelative(mobj_t *actor)
 	// NOTE: Doing actor->z + actor->height is the bottom of the object while the object has reverse gravity. - Flame
 	mo = P_SpawnMobj(actor->x + FixedMul(x<<FRACBITS, actor->scale),
 		actor->y + FixedMul(y<<FRACBITS, actor->scale),
-		(actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[type].height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), type);
+		(actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[type]->height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), type);
 	if (P_MobjWasRemoved(mo))
 		return;
 
@@ -9502,7 +9502,7 @@ void A_BossJetFume(mobj_t *actor)
 		jetx = actor->x + P_ReturnThrustX(actor, actor->angle, -FixedMul(64*FRACUNIT, actor->scale));
 		jety = actor->y + P_ReturnThrustY(actor, actor->angle, -FixedMul(64*FRACUNIT, actor->scale));
 		if (actor->eflags & MFE_VERTICALFLIP)
-			jetz = actor->z + actor->height - FixedMul(38*FRACUNIT + mobjinfo[MT_JETFUME1].height, actor->scale);
+			jetz = actor->z + actor->height - FixedMul(38*FRACUNIT + mobjinfo[MT_JETFUME1]->height, actor->scale);
 		else
 			jetz = actor->z + FixedMul(38*FRACUNIT, actor->scale);
 
@@ -9517,7 +9517,7 @@ void A_BossJetFume(mobj_t *actor)
 		}
 
 		if (actor->eflags & MFE_VERTICALFLIP)
-			jetz = actor->z + actor->height - FixedMul(12*FRACUNIT + mobjinfo[MT_JETFUME1].height, actor->scale);
+			jetz = actor->z + actor->height - FixedMul(12*FRACUNIT + mobjinfo[MT_JETFUME1]->height, actor->scale);
 		else
 			jetz = actor->z + FixedMul(12*FRACUNIT, actor->scale);
 
@@ -9555,7 +9555,7 @@ void A_BossJetFume(mobj_t *actor)
 		jetx = actor->x + P_ReturnThrustX(actor, actor->angle, -60*actor->scale);
 		jety = actor->y + P_ReturnThrustY(actor, actor->angle, -60*actor->scale);
 		if (actor->eflags & MFE_VERTICALFLIP)
-			jetz = actor->z + actor->height - FixedMul(17*FRACUNIT + mobjinfo[MT_PROPELLER].height, actor->scale);
+			jetz = actor->z + actor->height - FixedMul(17*FRACUNIT + mobjinfo[MT_PROPELLER]->height, actor->scale);
 		else
 			jetz = actor->z + FixedMul(17*FRACUNIT, actor->scale);
 
@@ -9587,7 +9587,7 @@ void A_BossJetFume(mobj_t *actor)
 	{
 		fixed_t jetz;
 		if (actor->eflags & MFE_VERTICALFLIP)
-			jetz = actor->z + actor->height + FixedMul(50*FRACUNIT - mobjinfo[MT_JETFLAME].height, actor->scale);
+			jetz = actor->z + actor->height + FixedMul(50*FRACUNIT - mobjinfo[MT_JETFLAME]->height, actor->scale);
 		else
 			jetz = actor->z - 50*actor->scale;
 		filler = P_SpawnMobj(actor->x, actor->y, jetz, MT_JETFLAME);
@@ -9606,7 +9606,7 @@ void A_BossJetFume(mobj_t *actor)
 
 		jetz = actor->z;
 		if (actor->eflags & MFE_VERTICALFLIP)
-			jetz += (actor->height - FixedMul(mobjinfo[MT_EGGROBO1JET].height, actor->scale));
+			jetz += (actor->height - FixedMul(mobjinfo[MT_EGGROBO1JET]->height, actor->scale));
 
 		while (true)
 		{
@@ -11324,7 +11324,7 @@ void A_TrapShot(mobj_t *actor)
 	y = actor->y + P_ReturnThrustY(actor, actor->angle, FixedMul(frontoff*FRACUNIT, actor->scale));
 
 	if (actor->eflags & MFE_VERTICALFLIP)
-		z = actor->z + actor->height - FixedMul(vertoff*FRACUNIT, actor->scale) - FixedMul(mobjinfo[type].height, actor->scale);
+		z = actor->z + actor->height - FixedMul(vertoff*FRACUNIT, actor->scale) - FixedMul(mobjinfo[type]->height, actor->scale);
 	else
 		z = actor->z + FixedMul(vertoff*FRACUNIT, actor->scale);
 
@@ -11394,7 +11394,7 @@ void A_VileTarget(mobj_t *actor)
 		return;
 
 	// Determine object to spawn
-	if (locvar1 <= 0 || locvar1 >= NUMMOBJTYPES)
+	if (locvar1 <= 0 || (size_t)locvar1 >= nummobjinfo)
 		fogtype = MT_CYBRAKDEMON_TARGET_RETICULE;
 	else
 		fogtype = (mobjtype_t)locvar1;
@@ -11403,7 +11403,7 @@ void A_VileTarget(mobj_t *actor)
 	{
 		fog = P_SpawnMobj(actor->target->x,
 							actor->target->y,
-							actor->target->z + ((actor->target->eflags & MFE_VERTICALFLIP) ? actor->target->height - mobjinfo[fogtype].height : 0),
+							actor->target->z + ((actor->target->eflags & MFE_VERTICALFLIP) ? actor->target->height - mobjinfo[fogtype]->height : 0),
 							fogtype);
 		if (!P_MobjWasRemoved(fog))
 		{
@@ -11436,7 +11436,7 @@ void A_VileTarget(mobj_t *actor)
 
 			fog = P_SpawnMobj(players[i].mo->x,
 							players[i].mo->y,
-							players[i].mo->z + ((players[i].mo->eflags & MFE_VERTICALFLIP) ? players[i].mo->height - mobjinfo[fogtype].height : 0),
+							players[i].mo->z + ((players[i].mo->eflags & MFE_VERTICALFLIP) ? players[i].mo->height - mobjinfo[fogtype]->height : 0),
 							fogtype);
 			if (!P_MobjWasRemoved(fog))
 			{
@@ -11491,7 +11491,7 @@ void A_VileAttack(mobj_t *actor)
 	else
 		soundtoplay = (sfxenum_t)locvar1;
 
-	if ((locvar2 & 0xFFFF) > 0 && (locvar2 & 0xFFFF) <= NUMMOBJTYPES)
+	if ((locvar2 & 0xFFFF) > 0 && (locvar2 & 0xFFFF) <= nummobjinfo)
 	{
 		explosionType = (mobjtype_t)(locvar2 & 0xFFFF);
 	}
@@ -11931,7 +11931,7 @@ void A_BrakLobShot(mobj_t *actor)
 	if (P_MobjWasRemoved(actor))
 		return;
 
-	if (locvar1 <= 0 || locvar1 >= NUMMOBJTYPES)
+	if (locvar1 <= 0 || locvar1 >= (INT32)nummobjinfo)
 		typeOfShot = MT_CANNONBALL;
 	else typeOfShot = (mobjtype_t)locvar1;
 	shot = P_SpawnMobj(actor->x, actor->y, actor->z + FixedMul(locvar2*FRACUNIT, actor->scale), typeOfShot);
@@ -11979,7 +11979,7 @@ void A_NapalmScatter(mobj_t *actor)
 		return;
 
 	// Some quick sanity-checking
-	if (typeOfShot >= NUMMOBJTYPES) // I'd add a <0 check, too, but 0x0000FFFF isn't negative in this case
+	if (typeOfShot >= nummobjinfo) // I'd add a <0 check, too, but 0x0000FFFF isn't negative in this case
 		typeOfShot = MT_NULL;
 	if (numToShoot <= 0) // Presumably you forgot to set var1 up; else, why are you calling this to shoot nothing?
 		numToShoot = 8;
@@ -12061,7 +12061,7 @@ mobj_t *P_InternalFlickySpawn(mobj_t *actor, mobjtype_t flickytype, fixed_t momz
 
 	if (moveforward)
 	{
-		fixed_t scal = mobjinfo[flickytype].radius*((fixed_t)moveforward);
+		fixed_t scal = mobjinfo[flickytype]->radius*((fixed_t)moveforward);
 		offsx = P_ReturnThrustX(actor, actor->angle, scal);
 		offsy = P_ReturnThrustY(actor, actor->angle, scal);
 	}
@@ -12273,13 +12273,13 @@ void P_InternalFlickyBubble(mobj_t *actor)
 	{
 		mobj_t *overlay;
 
-		if (!((actor->z + 3*actor->height/2) < actor->watertop) || !mobjinfo[actor->type].raisestate || actor->tracer)
+		if (!((actor->z + 3*actor->height/2) < actor->watertop) || !mobjinfo[actor->type]->raisestate || actor->tracer)
 			return;
 
 		overlay = P_SpawnMobj(actor->x, actor->y, actor->z, MT_OVERLAY);
 		if (P_MobjWasRemoved(overlay))
 			return;
-		P_SetMobjStateNF(overlay, mobjinfo[actor->type].raisestate);
+		P_SetMobjStateNF(overlay, mobjinfo[actor->type]->raisestate);
 		P_SetTarget(&actor->tracer, overlay);
 		P_SetTarget(&overlay->target, actor);
 		return;
@@ -12465,7 +12465,7 @@ void A_FlickyCoast(mobj_t *actor)
 	}
 
 	actor->flags &= ~MF_NOGRAVITY;
-	P_SetMobjState(actor, mobjinfo[actor->type].spawnstate);
+	P_SetMobjState(actor, mobjinfo[actor->type]->spawnstate);
 }
 
 // Internal Flicky hopping function.
@@ -12550,15 +12550,15 @@ void A_FlickyCheck(mobj_t *actor)
 			actor->flags |= MF_NOGRAVITY;
 		}
 		actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY;
-		P_SetMobjState(actor, mobjinfo[actor->type].seestate);
+		P_SetMobjState(actor, mobjinfo[actor->type]->seestate);
 	}
 	else if (locvar2 && P_MobjFlip(actor)*actor->momz < 1)
 		P_SetMobjState(actor, locvar2);
 	else if (locvar1 && ((!(actor->eflags & MFE_VERTICALFLIP) && actor->z <= actor->floorz)
 	|| ((actor->eflags & MFE_VERTICALFLIP) && actor->z + actor->height >= actor->ceilingz)))
 		P_SetMobjState(actor, locvar1);
-	else if (mobjinfo[actor->type].meleestate && (actor->eflags & MFE_UNDERWATER))
-		P_SetMobjState(actor, mobjinfo[actor->type].meleestate);
+	else if (mobjinfo[actor->type]->meleestate && (actor->eflags & MFE_UNDERWATER))
+		P_SetMobjState(actor, mobjinfo[actor->type]->meleestate);
 	P_InternalFlickyBubble(actor);
 }
 
@@ -12587,7 +12587,7 @@ void A_FlickyHeightCheck(mobj_t *actor)
 			actor->flags |= MF_NOGRAVITY;
 		}
 		actor->flags |= MF_NOCLIP | MF_NOBLOCKMAP | MF_SCENERY;
-		P_SetMobjState(actor, mobjinfo[actor->type].seestate);
+		P_SetMobjState(actor, mobjinfo[actor->type]->seestate);
 	}
 	else if (locvar1 && actor->target && P_MobjFlip(actor)*actor->momz < 1
 	&& ((P_MobjFlip(actor)*((actor->z + actor->height/2) - (actor->target->z + actor->target->height/2)) < locvar2)
@@ -12636,7 +12636,7 @@ void A_FlickyFlutter(mobj_t *actor)
 //
 void A_FlameParticle(mobj_t *actor)
 {
-	mobjtype_t type = (mobjtype_t)(mobjinfo[actor->type].painchance);
+	mobjtype_t type = (mobjtype_t)(mobjinfo[actor->type]->painchance);
 	fixed_t rad, hei;
 	mobj_t *particle;
 
@@ -12913,10 +12913,10 @@ void A_ConnectToGround(mobj_t *actor)
 		if (work)
 			work->old_z = work->z; // Don't copy old_z from the actor
 
-		actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar2].height, actor->scale);
+		actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar2]->height, actor->scale);
 	}
 
-	if (!locvar1 || !mobjinfo[locvar1].height) // Can't tile the middle object?
+	if (!locvar1 || !mobjinfo[locvar1]->height) // Can't tile the middle object?
 	{
 		actor->z = endz;
 		return;
@@ -12933,7 +12933,7 @@ void A_ConnectToGround(mobj_t *actor)
 		}
 
 		ang += ANGLE_90;
-		actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar1].height, actor->scale);
+		actor->z += P_MobjFlip(actor) * FixedMul(mobjinfo[locvar1]->height, actor->scale);
 	}
 
 	actor->old_z = actor->z; // Reset Z interpolation - the spawned objects intentionally don't have any Z interpolation either, after all
@@ -12973,7 +12973,7 @@ void A_SpawnParticleRelative(mobj_t *actor)
 	// NOTE: Doing actor->z + actor->height is the bottom of the object while the object has reverse gravity. - Flame
 	mo = P_SpawnMobj(actor->x + FixedMul(x<<FRACBITS, actor->scale),
 		actor->y + FixedMul(y<<FRACBITS, actor->scale),
-		(actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[MT_PARTICLE].height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), MT_PARTICLE);
+		(actor->eflags & MFE_VERTICALFLIP) ? ((actor->z + actor->height - mobjinfo[MT_PARTICLE]->height) - FixedMul(z<<FRACBITS, actor->scale)) : (actor->z + FixedMul(z<<FRACBITS, actor->scale)), MT_PARTICLE);
 	if (P_MobjWasRemoved(mo))
 		return;
 
diff --git a/src/p_floor.c b/src/p_floor.c
index 118b4bdbc7c11f7030380dd0472bcf74ecba5b5b..2a66b57b866d0ca9a3f30d85d2f44c4235154868 100644
--- a/src/p_floor.c
+++ b/src/p_floor.c
@@ -1020,7 +1020,7 @@ static mobj_t *SearchMarioNode(msecnode_t *node)
 		}
 		// Ignore popped monitors, too.
 		if (node->m_thing->health == 0 // this only really applies for monitors
-		|| (!(node->m_thing->flags & MF_MONITOR) && (mobjinfo[node->m_thing->type].flags & MF_MONITOR))) // gold monitor support
+		|| (!(node->m_thing->flags & MF_MONITOR) && (mobjinfo[node->m_thing->type]->flags & MF_MONITOR))) // gold monitor support
 			continue;
 		// Okay, we found something valid.
 		if (!thing // take either the first thing
@@ -1884,7 +1884,7 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
 	}
 
 	sec->soundorg.z = (controlsec->floorheight + controlsec->ceilingheight)/2;
-	S_StartSound(&sec->soundorg, mobjinfo[type].activesound);
+	S_StartSound(&sec->soundorg, mobjinfo[type]->activesound);
 
 #undef controlsec
 
diff --git a/src/p_inter.c b/src/p_inter.c
index e73cd1fce675ee17721e6236e7dc764ede8e9d69..fc137f7d70978c61a5591bd87582c810b3fe6ea7 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -1131,7 +1131,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 				if (player->powers[pw_nights_superloop])
 				{
 					gatherradius *= 2;
-					sparklestate = mobjinfo[MT_NIGHTSPARKLE].seestate;
+					sparklestate = mobjinfo[MT_NIGHTSPARKLE]->seestate;
 				}
 
 				if (gatherradius < 30*FRACUNIT) // Player is probably just sitting there.
@@ -2607,7 +2607,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
 				{
 					UINT8 locscoreadd = source->player->scoreadd + target->info->spawnhealth;
 					mobj_t *scoremobj;
-					UINT32 scorestate = mobjinfo[MT_SCORE].spawnstate;
+					UINT32 scorestate = mobjinfo[MT_SCORE]->spawnstate;
 
 					scoremobj = P_SpawnMobj(target->x, target->y, target->z + (target->height / 2), MT_SCORE);
 
@@ -3233,7 +3233,7 @@ static boolean P_TagDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, IN
 			if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers.
 			{
 				P_SwitchShield(player, SH_PINK);
-				S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound);
+				S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound);
 			}
 		}
 		return false;
@@ -3248,7 +3248,7 @@ static boolean P_TagDamage(mobj_t *target, mobj_t *inflictor, mobj_t *source, IN
 			if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers.
 			{
 				P_SwitchShield(player, SH_PINK);
-				S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound);
+				S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound);
 			}
 		}
 		else if (!(inflictor->flags & MF_FIRE))
@@ -3333,7 +3333,7 @@ static boolean P_PlayerHitsPlayer(mobj_t *target, mobj_t *inflictor, mobj_t *sou
 				if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers.
 				{
 					P_SwitchShield(player, SH_PINK);
-					S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound);
+					S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound);
 				}
 			}
 			return false;
@@ -3356,7 +3356,7 @@ static boolean P_PlayerHitsPlayer(mobj_t *target, mobj_t *inflictor, mobj_t *sou
 				if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers.
 				{
 					P_SwitchShield(player, SH_PINK);
-					S_StartSound(target, mobjinfo[MT_PITY_ICON].seesound);
+					S_StartSound(target, mobjinfo[MT_PITY_ICON]->seesound);
 				}
 			}
 			else if (!(inflictor->flags & MF_FIRE))
@@ -3618,7 +3618,7 @@ void P_SpecialStageDamage(player_t *player, mobj_t *inflictor, mobj_t *source)
 			if (player->revitem != MT_LHRT && player->spinitem != MT_LHRT && player->thokitem != MT_LHRT) // Healers do not get to heal other healers.
 			{
 				P_SwitchShield(player, SH_PINK);
-				S_StartSound(player->mo, mobjinfo[MT_PITY_ICON].seesound);
+				S_StartSound(player->mo, mobjinfo[MT_PITY_ICON]->seesound);
 			}
 		}
 
@@ -3982,15 +3982,15 @@ void P_PlayerRingBurst(player_t *player, INT32 num_rings)
 
 	for (i = 0; i < num_rings; i++)
 	{
-		INT32 objType = mobjinfo[MT_RING].reactiontime;
+		INT32 objType = mobjinfo[MT_RING]->reactiontime;
 		if (mariomode)
-			objType = mobjinfo[MT_COIN].reactiontime;
+			objType = mobjinfo[MT_COIN]->reactiontime;
 		else if (player->powers[pw_carry] == CR_NIGHTSFALL)
-			objType = mobjinfo[(nightsreplace ? MT_NIGHTSCHIP : MT_BLUESPHERE)].reactiontime;
+			objType = mobjinfo[(nightsreplace ? MT_NIGHTSCHIP : MT_BLUESPHERE)]->reactiontime;
 
 		z = player->mo->z;
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			z += player->mo->height - mobjinfo[objType].height;
+			z += player->mo->height - mobjinfo[objType]->height;
 
 		mo = P_SpawnMobj(player->mo->x, player->mo->y, z, objType);
 		if (P_MobjWasRemoved(mo))
@@ -4115,8 +4115,8 @@ void P_PlayerWeaponPanelBurst(player_t *player)
 		if (!weptype) // ???
 			continue;
 
-		if (player->powers[power] >= mobjinfo[weptype].reactiontime)
-			ammoamt = (UINT16)mobjinfo[weptype].reactiontime;
+		if (player->powers[power] >= mobjinfo[weptype]->reactiontime)
+			ammoamt = (UINT16)mobjinfo[weptype]->reactiontime;
 		else
 			ammoamt = player->powers[power];
 
@@ -4124,7 +4124,7 @@ void P_PlayerWeaponPanelBurst(player_t *player)
 
 		z = player->mo->z;
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			z += player->mo->height - mobjinfo[weptype].height;
+			z += player->mo->height - mobjinfo[weptype]->height;
 
 		mo = P_SpawnMobj(player->mo->x, player->mo->y, z, weptype);
 		if (P_MobjWasRemoved(mo))
@@ -4210,7 +4210,7 @@ void P_PlayerWeaponAmmoBurst(player_t *player)
 
 		z = player->mo->z;
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			z += player->mo->height - mobjinfo[weptype].height;
+			z += player->mo->height - mobjinfo[weptype]->height;
 
 		mo = P_SpawnMobj(player->mo->x, player->mo->y, z, weptype);
 		if (P_MobjWasRemoved(mo))
@@ -4253,7 +4253,7 @@ void P_PlayerWeaponPanelOrAmmoBurst(player_t *player)
 	#define SETUP_DROP(thingtype) \
 		z = player->mo->z; \
 		if (player->mo->eflags & MFE_VERTICALFLIP) \
-			z += player->mo->height - mobjinfo[thingtype].height; \
+			z += player->mo->height - mobjinfo[thingtype]->height; \
 		fa = ((i*FINEANGLES/16) + (player->mo->angle>>ANGLETOFINESHIFT)) & FINEMASK; \
 		ns = FixedMul(3*FRACUNIT, player->mo->scale); \
 
@@ -4407,7 +4407,7 @@ void P_PlayerEmeraldBurst(player_t *player, boolean toss)
 
 				z = player->mo->z + player->mo->height;
 				if (player->mo->eflags & MFE_VERTICALFLIP)
-					z -= mobjinfo[MT_FLINGEMERALD].height + player->mo->height;
+					z -= mobjinfo[MT_FLINGEMERALD]->height + player->mo->height;
 				ns = FixedMul(8*FRACUNIT, player->mo->scale);
 			}
 			else
@@ -4416,7 +4416,7 @@ void P_PlayerEmeraldBurst(player_t *player, boolean toss)
 
 				z = player->mo->z + (player->mo->height / 2);
 				if (player->mo->eflags & MFE_VERTICALFLIP)
-					z -= mobjinfo[MT_FLINGEMERALD].height;
+					z -= mobjinfo[MT_FLINGEMERALD]->height;
 				ns = FixedMul(4*FRACUNIT, player->mo->scale);
 			}
 
diff --git a/src/p_map.c b/src/p_map.c
index f97ddfa3cd8aa3fa9f7e9dbb3e6d76b041aca164..09ae7db2ff11fb5d650c0d540806143ab1a4205b 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -486,7 +486,7 @@ springstate:
 		if (object->player && spring->reactiontime && !(spring->info->flags & MF_ENEMY))
 		{
 			if (object->player->powers[pw_carry] != CR_NIGHTSMODE) // don't make graphic in NiGHTS
-				P_SetMobjState(P_SpawnMobj(spring->x, spring->y, spring->z + (spring->height/2), MT_SCORE), mobjinfo[MT_SCORE].spawnstate+11);
+				P_SetMobjState(P_SpawnMobj(spring->x, spring->y, spring->z + (spring->height/2), MT_SCORE), mobjinfo[MT_SCORE]->spawnstate+11);
 			P_AddPlayerScore(object->player, 10);
 			spring->reactiontime--;
 		}
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 9cdd2628db8cfec3ee8af83a6f96b3713879b164..e6c3c94e9afdee7093604ee811a8162b6c47e0a1 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -775,7 +775,7 @@ void P_EmeraldManager(void)
 			if (mo->threshold || mo->target) // Either has the emerald spawned or is spawning
 			{
 				numwithemerald++;
-				emeraldsspawned |= mobjinfo[mo->reactiontime].speed;
+				emeraldsspawned |= mobjinfo[mo->reactiontime]->speed;
 			}
 			else if (numspawnpoints < MAXHUNTEMERALDS)
 				spawnpoints[numspawnpoints++] = mo; // empty spawn points
@@ -3229,7 +3229,7 @@ void P_MobjCheckWater(mobj_t *mobj)
 				mobjtype_t splishtype = (mobj->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH;
 				if (mobj->eflags & MFE_VERTICALFLIP)
 				{
-					splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype].height, mobj->scale), splishtype);
+					splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype]->height, mobj->scale), splishtype);
 					if (!P_MobjWasRemoved(splish))
 					{
 						splish->flags2 |= MF2_OBJECTFLIP;
@@ -3268,7 +3268,7 @@ void P_MobjCheckWater(mobj_t *mobj)
 				mobjtype_t splishtype = (mobj->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH;
 				if (mobj->eflags & MFE_VERTICALFLIP)
 				{
-					splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype].height, mobj->scale), splishtype);
+					splish = P_SpawnMobj(mobj->x, mobj->y, mobj->waterbottom-FixedMul(mobjinfo[splishtype]->height, mobj->scale), splishtype);
 					if (!P_MobjWasRemoved(splish))
 					{
 						splish->flags2 |= MF2_OBJECTFLIP;
@@ -4185,7 +4185,7 @@ static void P_Boss2Thinker(mobj_t *mobj)
 
 	if (mobj->state == &states[mobj->info->spawnstate] && mobj->health > mobj->info->damage)
 		A_Boss2Chase(mobj);
-	else if (mobj->health > 0 && mobj->state != &states[mobj->info->painstate] && mobj->state != &states[mobjinfo[mobj->info->missilestate].raisestate])
+	else if (mobj->health > 0 && mobj->state != &states[mobj->info->painstate] && mobj->state != &states[mobjinfo[mobj->info->missilestate]->raisestate])
 	{
 		mobj->flags &= ~MF_NOGRAVITY;
 		A_Boss2Pogo(mobj);
@@ -4710,7 +4710,7 @@ static void P_Boss4Thinker(mobj_t *mobj)
 			mobj_t *seg, *base = mobj;
 			// First frame init, spawn all the things.
 			mobj->watertop = mobj->z;
-			z = mobj->z + mobj->height/2 - mobjinfo[MT_EGGMOBILE4_MACE].height/2;
+			z = mobj->z + mobj->height/2 - mobjinfo[MT_EGGMOBILE4_MACE]->height/2;
 			for (arm = 0; arm <3 ; arm++)
 			{
 				seg = P_SpawnMobj(mobj->x, mobj->y, z, MT_EGGMOBILE4_MACE);
@@ -4777,7 +4777,7 @@ static void P_Boss4Thinker(mobj_t *mobj)
 			mobj->movedir++;
 		}
 
-		z = mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE].height - mobj->height/2;
+		z = mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE]->height - mobj->height/2;
 		if (z < (8<<FRACBITS)) // We haven't risen high enough to pull the spikeballs along yet
 			P_Boss4MoveSpikeballs(mobj, FixedAngle(mobj->movecount), 0); // So don't pull the spikeballs along yet.
 		else
@@ -4809,7 +4809,7 @@ static void P_Boss4Thinker(mobj_t *mobj)
 		if (P_MobjWasRemoved(mobj))
 			return;
 
-		P_Boss4PinchSpikeballs(mobj, FixedAngle(mobj->movecount), mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE].height - mobj->height/2);
+		P_Boss4PinchSpikeballs(mobj, FixedAngle(mobj->movecount), mobj->z - mobj->watertop - mobjinfo[MT_EGGMOBILE4_MACE]->height - mobj->height/2);
 
 		if (!mobj->target || !mobj->target->health)
 			P_SupermanLook4Players(mobj);
@@ -6168,7 +6168,7 @@ void P_SpawnHoopOfSomething(fixed_t x, fixed_t y, fixed_t z, fixed_t radius, INT
 	x = xypos.x;
 	y = xypos.y;
 
-	hoopcenter.z = z - mobjinfo[type].height/2;
+	hoopcenter.z = z - mobjinfo[type]->height/2;
 
 	hoopcenter.x = x;
 	hoopcenter.y = y;
@@ -6435,7 +6435,7 @@ void P_MaceRotate(mobj_t *center, INT32 baserot, INT32 baseprevrot)
 
 			FV4_Load(&pos_lengthways, 0, 0, 0, 0);
 
-			dist = ((mobj->info->speed) ? mobj->info->speed : mobjinfo[MT_SMALLMACECHAIN].speed);
+			dist = ((mobj->info->speed) ? mobj->info->speed : mobjinfo[MT_SMALLMACECHAIN]->speed);
 			dist = ((center->scale == FRACUNIT) ? dist : FixedMul(dist, center->scale));
 
 			fa = (FixedAngle(center->movefactor*FRACUNIT) >> ANGLETOFINESHIFT);
@@ -7232,17 +7232,17 @@ static boolean P_ParticleGenSceneryThink(mobj_t *mobj)
 		if (line != -1)
 		{
 			bottomheight = lines[line].frontsector->floorheight;
-			topheight = lines[line].frontsector->ceilingheight - mobjinfo[(mobjtype_t)type].height;
+			topheight = lines[line].frontsector->ceilingheight - mobjinfo[(mobjtype_t)type]->height;
 		}
 		else if (mobj->flags2 & MF2_OBJECTFLIP)
 		{
 			bottomheight = mobj->z - mobj->extravalue1;
-			topheight = mobj->z - mobjinfo[(mobjtype_t)type].height;
+			topheight = mobj->z - mobjinfo[(mobjtype_t)type]->height;
 		}
 		else
 		{
 			bottomheight = mobj->z;
-			topheight = mobj->z + mobj->extravalue1 - mobjinfo[(mobjtype_t)type].height;
+			topheight = mobj->z + mobj->extravalue1 - mobjinfo[(mobjtype_t)type]->height;
 		}
 
 
@@ -8877,9 +8877,9 @@ static void P_NiGHTSDroneThink(mobj_t *mobj)
 			if (!(droneman->flags2 & MF2_DONTDRAW))
 				droneman->flags2 |= MF2_DONTDRAW;
 			if (goalpost->state == &states[S_INVISIBLE])
-				P_SetMobjState(goalpost, mobjinfo[goalpost->type].meleestate);
+				P_SetMobjState(goalpost, mobjinfo[goalpost->type]->meleestate);
 			if (sparkle->state == &states[S_INVISIBLE])
-				P_SetMobjState(sparkle, mobjinfo[sparkle->type].meleestate);
+				P_SetMobjState(sparkle, mobjinfo[sparkle->type]->meleestate);
 		}
 		else if (!G_IsSpecialStage(gamemap))
 		{
@@ -8897,8 +8897,8 @@ static void P_NiGHTSDroneThink(mobj_t *mobj)
 					P_SetMobjState(goalpost, S_INVISIBLE);
 				if (sparkle->state != &states[S_INVISIBLE])
 					P_SetMobjState(sparkle, S_INVISIBLE);
-				if (droneman->state != &states[mobjinfo[droneman->type].meleestate])
-					P_SetMobjState(droneman, mobjinfo[droneman->type].meleestate);
+				if (droneman->state != &states[mobjinfo[droneman->type]->meleestate])
+					P_SetMobjState(droneman, mobjinfo[droneman->type]->meleestate);
 				if (droneman->flags2 & MF2_DONTDRAW)
 					droneman->flags2 &= ~MF2_DONTDRAW;
 			}
@@ -9901,12 +9901,12 @@ static void P_FiringThink(mobj_t *mobj)
 
 		if (mobj->target->player && mobj->target->player->powers[pw_carry] == CR_NIGHTSMODE)
 		{
-			fixed_t oldval = mobjinfo[mobj->extravalue1].speed;
+			fixed_t oldval = mobjinfo[mobj->extravalue1]->speed;
 
 			mobj->angle = R_PointToAngle2(mobj->x, mobj->y, mobj->target->x + mobj->target->momx, mobj->target->y + mobj->target->momy);
-			mobjinfo[mobj->extravalue1].speed = FixedMul(60*FRACUNIT, mobj->scale);
+			mobjinfo[mobj->extravalue1]->speed = FixedMul(60*FRACUNIT, mobj->scale);
 			missile = P_SpawnMissile(mobj, mobj->target, mobj->extravalue1);
-			mobjinfo[mobj->extravalue1].speed = oldval;
+			mobjinfo[mobj->extravalue1]->speed = oldval;
 		}
 		else
 		{
@@ -9985,7 +9985,7 @@ static void P_FlagFuseThink(mobj_t *mobj)
 	z = mobj->spawnpoint->z << FRACBITS;
 	ss = R_PointInSubsector(x, y);
 	if (mobj->spawnpoint->options & MTF_OBJECTFLIP)
-		z = ss->sector->ceilingheight - mobjinfo[mobj->type].height - z;
+		z = ss->sector->ceilingheight - mobjinfo[mobj->type]->height - z;
 	else
 		z = ss->sector->floorheight + z;
 	flagmo = P_SpawnMobj(x, y, z, mobj->type);
@@ -10620,7 +10620,7 @@ static fixed_t P_DefaultMobjShadowScale (mobj_t *thing)
 //
 mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 {
-	const mobjinfo_t *info = &mobjinfo[type];
+	const mobjinfo_t *info = mobjinfo[type];
 	SINT8 sc = -1;
 	state_t *st;
 	mobj_t *mobj;
@@ -11097,11 +11097,11 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype
 
 	mobj->x = x;
 	mobj->y = y;
-	mobj->flags = mobjinfo[type].flags;
+	mobj->flags = mobjinfo[type]->flags;
 
 	// do not set the state with P_SetMobjState,
 	// because action routines can not be called yet
-	st = &states[mobjinfo[type].spawnstate];
+	st = &states[mobjinfo[type]->spawnstate];
 
 	mobj->state = st;
 	mobj->tics = st->tics;
@@ -11119,7 +11119,7 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype
 	mobj->ceilingrover = NULL;
 
 	mobj->z = z;
-	mobj->momz = mobjinfo[type].speed;
+	mobj->momz = mobjinfo[type]->speed;
 
 	mobj->thinker.function.acp1 = (actionf_p1)P_NullPrecipThinker;
 	P_AddThinker(THINK_PRECIP, &mobj->thinker);
@@ -11548,8 +11548,8 @@ void P_PrecipitationEffects(void)
 mobjtype_t P_GetMobjtype(UINT16 mthingtype)
 {
 	mobjtype_t i;
-	for (i = 0; i < NUMMOBJTYPES; i++)
-		if (mthingtype == mobjinfo[i].doomednum)
+	for (i = 0; i < nummobjinfo; i++)
+		if (mthingtype == mobjinfo[i]->doomednum)
 			return i;
 	return MT_UNKNOWN;
 }
@@ -11718,7 +11718,7 @@ void P_SpawnPlayer(INT32 playernum)
 				{
 					idya->health = 0; // for identification
 					P_SetTarget(&idya->target, mobj);
-					P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD].missilestate);
+					P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD]->missilestate);
 					P_SetTarget(&mobj->tracer, idya);
 				}
 			}
@@ -11800,7 +11800,7 @@ void P_MovePlayerToSpawn(INT32 playernum, mapthing_t *mthing)
 
 	floor   = P_GetSectorFloorZAt  (sector, x, y);
 	ceiling = P_GetSectorCeilingZAt(sector, x, y);
-	ceilingspawn = ceiling - mobjinfo[MT_PLAYER].height;
+	ceilingspawn = ceiling - mobjinfo[MT_PLAYER]->height;
 
 	if (mthing)
 	{
@@ -11919,7 +11919,7 @@ fixed_t P_GetMobjSpawnHeight(const mobjtype_t mobjtype, const fixed_t x, const f
 
 	// Establish height.
 	if (flip)
-		return (absolutez ? dz : P_GetSectorCeilingZAt(ss->sector, x, y) - dz) - FixedMul(scale, offset + mobjinfo[mobjtype].height);
+		return (absolutez ? dz : P_GetSectorCeilingZAt(ss->sector, x, y) - dz) - FixedMul(scale, offset + mobjinfo[mobjtype]->height);
 	else
 		return (absolutez ? dz : P_GetSectorFloorZAt(ss->sector, x, y) + dz) + FixedMul(scale, offset);
 }
@@ -11928,7 +11928,7 @@ fixed_t P_GetMapThingSpawnHeight(const mobjtype_t mobjtype, const mapthing_t* mt
 {
 	fixed_t dz = mthing->z << FRACBITS; // Base offset from the floor.
 	fixed_t offset = 0; // Specific scaling object offset.
-	boolean flip = (!!(mobjinfo[mobjtype].flags & MF_SPAWNCEILING) ^ !!(mthing->options & MTF_OBJECTFLIP));
+	boolean flip = (!!(mobjinfo[mobjtype]->flags & MF_SPAWNCEILING) ^ !!(mthing->options & MTF_OBJECTFLIP));
 	boolean absolutez = !!(mthing->options & MTF_ABSOLUTEZ);
 
 	switch (mobjtype)
@@ -12038,7 +12038,7 @@ static boolean P_SpawnNonMobjMapThing(mapthing_t *mthing)
 		}
 		return true;
 	}
-	else if (metalrecording && mthing->type == mobjinfo[MT_METALSONIC_RACE].doomednum)
+	else if (metalrecording && mthing->type == mobjinfo[MT_METALSONIC_RACE]->doomednum)
 	{ // If recording, you ARE Metal Sonic. Do not spawn it, do not save normal spawnpoints.
 		playerstarts[0] = mthing;
 		return true;
@@ -12047,7 +12047,7 @@ static boolean P_SpawnNonMobjMapThing(mapthing_t *mthing)
 		     || (mthing->type >= 600 && mthing->type <= 611) // Special placement patterns
 		     || mthing->type == 1713) // Hoops
 		return true; // These are handled elsewhere.
-	else if (mthing->type == mobjinfo[MT_EMERHUNT].doomednum)
+	else if (mthing->type == mobjinfo[MT_EMERHUNT]->doomednum)
 	{
 		// Emerald Hunt is Coop only. Don't spawn the emerald yet, but save the spawnpoint for later.
 		if ((gametyperules & GTR_EMERALDHUNT) && numhuntemeralds < MAXHUNTEMERALDS)
@@ -12075,7 +12075,7 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i)
 		if (metalrecording)
 			return false; // Metal Sonic isn't for collecting emeralds.
 
-		if (emeralds & mobjinfo[i].speed) // You already have this emerald!
+		if (emeralds & mobjinfo[i]->speed) // You already have this emerald!
 			return false;
 
 		break;
@@ -12117,13 +12117,13 @@ static boolean P_AllowMobjSpawn(mapthing_t* mthing, mobjtype_t i)
 
 	if (metalrecording) // Metal Sonic can't use these things.
 	{
-		if ((mobjinfo[i].flags & (MF_ENEMY|MF_BOSS)) || i == MT_TOKEN || i == MT_STARPOST
+		if ((mobjinfo[i]->flags & (MF_ENEMY|MF_BOSS)) || i == MT_TOKEN || i == MT_STARPOST
 			|| i == MT_RING || i == MT_BLUETEAMRING || i == MT_REDTEAMRING || i == MT_COIN
 			|| i == MT_BLUESPHERE || i == MT_BOMBSPHERE || i == MT_NIGHTSCHIP || i == MT_NIGHTSSTAR)
 			return false;
 	}
 
-	if (((mobjinfo[i].flags & MF_ENEMY) || (mobjinfo[i].flags & MF_BOSS)) && !(gametyperules & GTR_SPAWNENEMIES))
+	if (((mobjinfo[i]->flags & MF_ENEMY) || (mobjinfo[i]->flags & MF_BOSS)) && !(gametyperules & GTR_SPAWNENEMIES))
 		return false; // No enemies in ringslinger modes
 
 	if (!(gametyperules & GTR_ALLOWEXIT) && (i == MT_SIGN))
@@ -12182,7 +12182,7 @@ static mobjtype_t P_GetMobjtypeSubstitute(mapthing_t *mthing, mobjtype_t i)
 	// If MF_GRENADEBOUNCE is set in the monitor's info,
 	// skip this step. (Used for gold monitors)
 	// Yeah, this is a dirty hack.
-	if ((mobjinfo[i].flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR)
+	if ((mobjinfo[i]->flags & (MF_MONITOR|MF_GRENADEBOUNCE)) == MF_MONITOR)
 	{
 		if (gametyperules & GTR_RACE)
 		{
@@ -12655,13 +12655,13 @@ static boolean P_SetupNiGHTSDrone(mapthing_t *mthing, mobj_t *mobj)
 	if (hitboxheight > 0)
 		mobj->height = hitboxheight;
 	else
-		mobj->height = mobjinfo[MT_NIGHTSDRONE].height;
+		mobj->height = mobjinfo[MT_NIGHTSDRONE]->height;
 
 	if (mthing->args[4])
 		mobj->flags2 |= MF2_AMBUSH; //Kill player upon time up
 
-	droneboxmandiff = max(mobj->height - mobjinfo[MT_NIGHTSDRONE_MAN].height, 0);
-	dronemangoaldiff = max(mobjinfo[MT_NIGHTSDRONE_MAN].height - mobjinfo[MT_NIGHTSDRONE_GOAL].height, 0);
+	droneboxmandiff = max(mobj->height - mobjinfo[MT_NIGHTSDRONE_MAN]->height, 0);
+	dronemangoaldiff = max(mobjinfo[MT_NIGHTSDRONE_MAN]->height - mobjinfo[MT_NIGHTSDRONE_GOAL]->height, 0);
 
 	if (flip && mobj->height != oldheight)
 		P_SetOrigin(mobj, mobj->x, mobj->y, mobj->z - (mobj->height - oldheight));
@@ -13683,7 +13683,7 @@ static void P_SpawnItemRow(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 numi
 	for (r = 0; r < numitemtypes; r++)
 	{
 		dummything = *mthing;
-		dummything.type = mobjinfo[itemtypes[r]].doomednum;
+		dummything.type = mobjinfo[itemtypes[r]]->doomednum;
 		// Skip all returning/substitution code in objectplace.
 		if (!objectplacing)
 		{
@@ -13703,7 +13703,7 @@ static void P_SpawnItemRow(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 numi
 		mobjtype_t itemtype = itemtypes[r % numitemtypes];
 		if (itemtype == MT_NULL)
 			continue;
-		dummything.type = mobjinfo[itemtype].doomednum;
+		dummything.type = mobjinfo[itemtype]->doomednum;
 
 		x += FixedMul(horizontalspacing, FINECOSINE(fineangle));
 		y += FixedMul(horizontalspacing, FINESINE(fineangle));
@@ -13742,7 +13742,7 @@ static void P_SpawnItemCircle(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 n
 	for (i = 0; i < numitemtypes; i++)
 	{
 		dummything = *mthing;
-		dummything.type = mobjinfo[itemtypes[i]].doomednum;
+		dummything.type = mobjinfo[itemtypes[i]]->doomednum;
 		// Skip all returning/substitution code in objectplace.
 		if (!objectplacing)
 		{
@@ -13762,7 +13762,7 @@ static void P_SpawnItemCircle(mapthing_t *mthing, mobjtype_t *itemtypes, UINT8 n
 		mobjtype_t itemtype = itemtypes[i % numitemtypes];
 		if (itemtype == MT_NULL)
 			continue;
-		dummything.type = mobjinfo[itemtype].doomednum;
+		dummything.type = mobjinfo[itemtype]->doomednum;
 
 		fa = i*FINEANGLES/numitems;
 		v.x = FixedMul(FINECOSINE(fa), size);
@@ -13916,7 +13916,7 @@ mobj_t *P_SpawnXYZMissile(mobj_t *source, mobj_t *dest, mobjtype_t type,
 	I_Assert(dest != NULL);
 
 	if (source->eflags & MFE_VERTICALFLIP)
-		z -= FixedMul(mobjinfo[type].height, source->scale);
+		z -= FixedMul(mobjinfo[type]->height, source->scale);
 
 	th = P_SpawnMobj(x, y, z, type);
 	if (P_MobjWasRemoved(th))
@@ -13932,7 +13932,7 @@ mobj_t *P_SpawnXYZMissile(mobj_t *source, mobj_t *dest, mobjtype_t type,
 	if (speed == 0)
 	{
 		CONS_Debug(DBG_GAMELOGIC, "P_SpawnXYZMissile - projectile has 0 speed! (mobj type %d)\n", type);
-		speed = mobjinfo[MT_ROCKET].speed;
+		speed = mobjinfo[MT_ROCKET]->speed;
 	}
 
 	if (th->info->seesound)
@@ -13979,7 +13979,7 @@ mobj_t *P_SpawnAlteredDirectionMissile(mobj_t *source, mobjtype_t type, fixed_t
 		return NULL;
 
 	if (source->eflags & MFE_VERTICALFLIP)
-		z -= FixedMul(mobjinfo[type].height, source->scale);
+		z -= FixedMul(mobjinfo[type]->height, source->scale);
 
 	th = P_SpawnMobj(x, y, z, type);
 	if (P_MobjWasRemoved(th))
@@ -13995,7 +13995,7 @@ mobj_t *P_SpawnAlteredDirectionMissile(mobj_t *source, mobjtype_t type, fixed_t
 	if (speed == 0) // Backwards compatibility with 1.09.2
 	{
 		CONS_Printf("P_SpawnAlteredDirectionMissile - projectile has 0 speed! (mobj type %d)\nPlease update this SOC.", type);
-		speed = mobjinfo[MT_ROCKET].speed;
+		speed = mobjinfo[MT_ROCKET]->speed;
 	}
 
 	if (th->info->seesound)
@@ -14045,7 +14045,7 @@ mobj_t *P_SpawnPointMissile(mobj_t *source, fixed_t xa, fixed_t ya, fixed_t za,
 	I_Assert(source != NULL);
 
 	if (source->eflags & MFE_VERTICALFLIP)
-		z -= FixedMul(mobjinfo[type].height, source->scale);
+		z -= FixedMul(mobjinfo[type]->height, source->scale);
 
 	th = P_SpawnMobj(x, y, z, type);
 	if (P_MobjWasRemoved(th))
@@ -14061,7 +14061,7 @@ mobj_t *P_SpawnPointMissile(mobj_t *source, fixed_t xa, fixed_t ya, fixed_t za,
 	if (speed == 0) // Backwards compatibility with 1.09.2
 	{
 		CONS_Printf("P_SpawnPointMissile - projectile has 0 speed! (mobj type %d)\nPlease update this SOC.", type);
-		speed = mobjinfo[MT_ROCKET].speed;
+		speed = mobjinfo[MT_ROCKET]->speed;
 	}
 
 	if (th->info->seesound)
@@ -14116,7 +14116,7 @@ mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type)
 		z = source->z + source->height/2;
 
 	if (source->eflags & MFE_VERTICALFLIP)
-		z -= FixedMul(mobjinfo[type].height, source->scale);
+		z -= FixedMul(mobjinfo[type]->height, source->scale);
 
 	th = P_SpawnMobj(source->x, source->y, z, type);
 	if (P_MobjWasRemoved(th))
@@ -14135,7 +14135,7 @@ mobj_t *P_SpawnMissile(mobj_t *source, mobj_t *dest, mobjtype_t type)
 	if (speed == 0)
 	{
 		CONS_Debug(DBG_GAMELOGIC, "P_SpawnMissile - projectile has 0 speed! (mobj type %d)\n", type);
-		speed = FixedMul(mobjinfo[MT_TURRETLASER].speed, th->scale);
+		speed = FixedMul(mobjinfo[MT_TURRETLASER]->speed, th->scale);
 	}
 
 	if (th->info->seesound)
@@ -14216,7 +14216,7 @@ mobj_t *P_SPMAngle(mobj_t *source, mobjtype_t type, angle_t angle, UINT8 allowai
 	y = source->y;
 
 	if (source->eflags & MFE_VERTICALFLIP)
-		z = source->z + 2*source->height/3 - FixedMul(mobjinfo[type].height, source->scale);
+		z = source->z + 2*source->height/3 - FixedMul(mobjinfo[type]->height, source->scale);
 	else
 		z = source->z + source->height/3;
 
diff --git a/src/p_saveg.c b/src/p_saveg.c
index 5e4d6d0760441e6bc94c6815824b8b7e1ab38c80..5d9b3ec9020c1df0a309792dafc17c182b53790f 100644
--- a/src/p_saveg.c
+++ b/src/p_saveg.c
@@ -3026,10 +3026,10 @@ static thinker_t* LoadMobjThinker(actionf_p1 thinker)
 		mobj->type = READUINT32(save_p);
 	else
 	{
-		for (i = 0; i < NUMMOBJTYPES; i++)
-			if (mobj->spawnpoint && mobj->spawnpoint->type == mobjinfo[i].doomednum)
+		for (i = 0; (size_t)i < nummobjinfo; i++)
+			if (mobj->spawnpoint && mobj->spawnpoint->type == mobjinfo[i]->doomednum)
 				break;
-		if (i == NUMMOBJTYPES)
+		if ((size_t)i == nummobjinfo)
 		{
 			if (mobj->spawnpoint)
 				CONS_Alert(CONS_ERROR, "Found mobj with unknown map thing type %d\n", mobj->spawnpoint->type);
@@ -3039,7 +3039,7 @@ static thinker_t* LoadMobjThinker(actionf_p1 thinker)
 		}
 		mobj->type = i;
 	}
-	mobj->info = &mobjinfo[mobj->type];
+	mobj->info = mobjinfo[mobj->type];
 	if (diff & MD_POS)
 	{
 		mobj->x = READFIXED(save_p);
@@ -4231,7 +4231,7 @@ static inline void P_FinishMobjs(void)
 			continue;
 
 		mobj = (mobj_t *)currentthinker;
-		mobj->info = &mobjinfo[mobj->type];
+		mobj->info = mobjinfo[mobj->type];
 	}
 }
 
diff --git a/src/p_setup.c b/src/p_setup.c
index 41487d702f265c7e5164c61be8d0b8f8c059aa38..2c9ca50b65cbbd4454495eefd11c84f5cebd3567 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -723,9 +723,9 @@ void P_ReloadRings(void)
 	for (i = 0; i < nummapthings; i++, mt++)
 	{
 		// Notice an omission? We handle hoops differently.
-		if (mt->type == mobjinfo[MT_RING].doomednum || mt->type == mobjinfo[MT_COIN].doomednum
-			|| mt->type == mobjinfo[MT_REDTEAMRING].doomednum || mt->type == mobjinfo[MT_BLUETEAMRING].doomednum
-			|| mt->type == mobjinfo[MT_BLUESPHERE].doomednum || mt->type == mobjinfo[MT_BOMBSPHERE].doomednum)
+		if (mt->type == mobjinfo[MT_RING]->doomednum || mt->type == mobjinfo[MT_COIN]->doomednum
+			|| mt->type == mobjinfo[MT_REDTEAMRING]->doomednum || mt->type == mobjinfo[MT_BLUETEAMRING]->doomednum
+			|| mt->type == mobjinfo[MT_BLUESPHERE]->doomednum || mt->type == mobjinfo[MT_BOMBSPHERE]->doomednum)
 		{
 			mt->mobj = NULL;
 			P_SetBonusTime(P_SpawnMapThing(mt));
@@ -850,7 +850,7 @@ static void P_SpawnEmeraldHunt(void)
 		y = huntemeralds[emer[i]]->y<<FRACBITS;
 		z = P_GetMapThingSpawnHeight(MT_EMERHUNT, huntemeralds[emer[i]], x, y);
 		P_SetMobjStateNF(P_SpawnMobj(x, y, z, MT_EMERHUNT),
-			mobjinfo[MT_EMERHUNT].spawnstate+i);
+			mobjinfo[MT_EMERHUNT]->spawnstate+i);
 	}
 }
 
@@ -884,7 +884,7 @@ static void P_SpawnMapThings(boolean spawnemblems)
 			|| mt->type == 1702) // MT_AXISTRANSFERLINE
 			continue; // These were already spawned
 
-		if (!spawnemblems && mt->type == mobjinfo[MT_EMBLEM].doomednum)
+		if (!spawnemblems && mt->type == mobjinfo[MT_EMBLEM]->doomednum)
 			continue;
 
 		mt->mobj = NULL;
@@ -6359,12 +6359,12 @@ static void P_ConvertBinaryThingTypes(void)
 	mobjtype_t mobjtypeofthing[4096] = {0};
 	mobjtype_t mobjtype;
 
-	for (i = 0; i < NUMMOBJTYPES; i++)
+	for (i = 0; i < nummobjinfo; i++)
 	{
-		if (mobjinfo[i].doomednum < 0 || mobjinfo[i].doomednum >= 4096)
+		if (mobjinfo[i]->doomednum < 0 || mobjinfo[i]->doomednum >= 4096)
 			continue;
 
-		mobjtypeofthing[mobjinfo[i].doomednum] = (mobjtype_t)i;
+		mobjtypeofthing[mobjinfo[i]->doomednum] = (mobjtype_t)i;
 	}
 
 	for (i = 0; i < nummapthings; i++)
@@ -6372,7 +6372,7 @@ static void P_ConvertBinaryThingTypes(void)
 		mobjtype = mobjtypeofthing[mapthings[i].type];
 		if (mobjtype)
 		{
-			if (mobjinfo[mobjtype].flags & MF_BOSS)
+			if (mobjinfo[mobjtype]->flags & MF_BOSS)
 			{
 				INT32 paramoffset = mapthings[i].extrainfo*LE_PARAMWIDTH;
 				mapthings[i].args[0] = mapthings[i].extrainfo;
@@ -6381,14 +6381,14 @@ static void P_ConvertBinaryThingTypes(void)
 				mapthings[i].args[3] = LE_ALLBOSSESDEAD + paramoffset;
 				mapthings[i].args[4] = LE_PINCHPHASE + paramoffset;
 			}
-			if (mobjinfo[mobjtype].flags & MF_NIGHTSITEM)
+			if (mobjinfo[mobjtype]->flags & MF_NIGHTSITEM)
 			{
 				if (mapthings[i].options & MTF_OBJECTSPECIAL)
 					mapthings[i].args[0] |= TMNI_BONUSONLY;
 				if (mapthings[i].options & MTF_AMBUSH)
 					mapthings[i].args[0] |= TMNI_REVEAL;
 			}
-			if (mobjinfo[mobjtype].flags & MF_PUSHABLE)
+			if (mobjinfo[mobjtype]->flags & MF_PUSHABLE)
 			{
 				if ((mapthings[i].options & (MTF_OBJECTSPECIAL|MTF_AMBUSH)) == (MTF_OBJECTSPECIAL|MTF_AMBUSH))
 					mapthings[i].args[0] = TMP_CLASSIC;
@@ -6399,14 +6399,14 @@ static void P_ConvertBinaryThingTypes(void)
 				else
 					mapthings[i].args[0] = TMP_NORMAL;
 			}
-			if ((mobjinfo[mobjtype].flags & MF_SPRING) && mobjinfo[mobjtype].painchance == 3)
+			if ((mobjinfo[mobjtype]->flags & MF_SPRING) && mobjinfo[mobjtype]->painchance == 3)
 				mapthings[i].args[0] = !!(mapthings[i].options & MTF_AMBUSH);
-			if (mobjinfo[mobjtype].flags & MF_MONITOR)
+			if (mobjinfo[mobjtype]->flags & MF_MONITOR)
 			{
 				if ((mapthings[i].options & MTF_EXTRA) && mapthings[i].angle & 16384)
 					mapthings[i].args[0] = mapthings[i].angle & 16383;
 
-				if (mobjinfo[mobjtype].speed != 0)
+				if (mobjinfo[mobjtype]->speed != 0)
 				{
 					if (mapthings[i].options & MTF_OBJECTSPECIAL)
 						mapthings[i].args[1] = TMMR_STRONG;
@@ -6565,7 +6565,7 @@ static void P_ConvertBinaryThingTypes(void)
 		case 522: //Wall spike
 			if (mapthings[i].options & MTF_OBJECTSPECIAL)
 			{
-				mapthings[i].args[0] = mobjinfo[MT_WALLSPIKE].speed + mapthings[i].angle/360;
+				mapthings[i].args[0] = mobjinfo[MT_WALLSPIKE]->speed + mapthings[i].angle/360;
 				mapthings[i].args[1] = (16 - mapthings[i].extrainfo) * mapthings[i].args[0]/16;
 				if (mapthings[i].options & MTF_EXTRA)
 					mapthings[i].args[2] |= TMSF_RETRACTED;
@@ -6576,7 +6576,7 @@ static void P_ConvertBinaryThingTypes(void)
 		case 523: //Spike
 			if (mapthings[i].options & MTF_OBJECTSPECIAL)
 			{
-				mapthings[i].args[0] = mobjinfo[MT_SPIKE].speed + mapthings[i].angle;
+				mapthings[i].args[0] = mobjinfo[MT_SPIKE]->speed + mapthings[i].angle;
 				mapthings[i].args[1] = (16 - mapthings[i].extrainfo) * mapthings[i].args[0]/16;
 				if (mapthings[i].options & MTF_EXTRA)
 					mapthings[i].args[2] |= TMSF_RETRACTED;
diff --git a/src/p_spec.c b/src/p_spec.c
index 805817fb033c465b33059c24fbefb52432173444..67c33f203101fb99c257311fa0807f0657125e7d 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -2055,13 +2055,13 @@ void P_SwitchWeather(INT32 weathernum)
 
 			if (weathernum == PRECIP_RAIN || weathernum == PRECIP_STORM || weathernum == PRECIP_STORM_NOSTRIKES) // Snow To Rain
 			{
-				precipmobj->flags = mobjinfo[MT_RAIN].flags;
-				st = &states[mobjinfo[MT_RAIN].spawnstate];
+				precipmobj->flags = mobjinfo[MT_RAIN]->flags;
+				st = &states[mobjinfo[MT_RAIN]->spawnstate];
 				precipmobj->state = st;
 				precipmobj->tics = st->tics;
 				precipmobj->sprite = st->sprite;
 				precipmobj->frame = st->frame;
-				precipmobj->momz = mobjinfo[MT_RAIN].speed;
+				precipmobj->momz = mobjinfo[MT_RAIN]->speed;
 
 				precipmobj->precipflags &= ~PCF_INVISIBLE;
 
@@ -2072,7 +2072,7 @@ void P_SwitchWeather(INT32 weathernum)
 			{
 				INT32 z;
 
-				precipmobj->flags = mobjinfo[MT_SNOWFLAKE].flags;
+				precipmobj->flags = mobjinfo[MT_SNOWFLAKE]->flags;
 				z = M_RandomByte();
 
 				if (z < 64)
@@ -2082,12 +2082,12 @@ void P_SwitchWeather(INT32 weathernum)
 				else
 					z = 0;
 
-				st = &states[mobjinfo[MT_SNOWFLAKE].spawnstate+z];
+				st = &states[mobjinfo[MT_SNOWFLAKE]->spawnstate+z];
 				precipmobj->state = st;
 				precipmobj->tics = st->tics;
 				precipmobj->sprite = st->sprite;
 				precipmobj->frame = st->frame;
-				precipmobj->momz = mobjinfo[MT_SNOWFLAKE].speed;
+				precipmobj->momz = mobjinfo[MT_SNOWFLAKE]->speed;
 
 				precipmobj->precipflags &= ~(PCF_INVISIBLE|PCF_RAIN);
 
@@ -2909,7 +2909,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 			statenum_t state = NUMSTATES;
 			mobj_t *thing;
 
-			if (type < 0 || type >= NUMMOBJTYPES)
+			if (type < 0 || type >= nummobjinfo)
 				break;
 
 			if (!line->args[1])
@@ -4944,10 +4944,10 @@ static void P_EvaluateSpecialFlags(player_t *player, sector_t *sector, sector_t
 		P_ProcessTeamBase(player, false);
 	if (sector->specialflags & SSF_FAN)
 	{
-		player->mo->momz += mobjinfo[MT_FAN].mass/4;
+		player->mo->momz += mobjinfo[MT_FAN]->mass/4;
 
-		if (player->mo->momz > mobjinfo[MT_FAN].mass)
-			player->mo->momz = mobjinfo[MT_FAN].mass;
+		if (player->mo->momz > mobjinfo[MT_FAN]->mass)
+			player->mo->momz = mobjinfo[MT_FAN]->mass;
 
 		if (!player->powers[pw_carry])
 		{
diff --git a/src/p_tick.c b/src/p_tick.c
index 56e0fd897bfbba718885a1104224d1554790f227..652b107055b8db11f7d25700c53781bbe301b0c1 100644
--- a/src/p_tick.c
+++ b/src/p_tick.c
@@ -152,9 +152,9 @@ void Command_CountMobjs_f(void)
 		for (j = 1; j < COM_Argc(); j++)
 		{
 			i = atoi(COM_Argv(j));
-			if (i >= NUMMOBJTYPES)
+			if (i >= nummobjinfo)
 			{
-				CONS_Printf(M_GetText("Object number %d out of range (max %d).\n"), i, NUMMOBJTYPES-1);
+				CONS_Printf(M_GetText("Object number %d out of range (max %zu).\n"), i, nummobjinfo-1);
 				continue;
 			}
 
@@ -176,7 +176,7 @@ void Command_CountMobjs_f(void)
 
 	CONS_Printf(M_GetText("Count of active objects in level:\n"));
 
-	for (i = 0; i < NUMMOBJTYPES; i++)
+	for (i = 0; i < nummobjinfo; i++)
 	{
 		count = 0;
 
@@ -237,12 +237,10 @@ static const char *MobjTypeName(const mobj_t *mobj)
 	else
 		return "<Not a mobj>";
 
-	if (type < 0 || type >= NUMMOBJTYPES || (type >= MT_FIRSTFREESLOT && !FREE_MOBJS[type - MT_FIRSTFREESLOT]))
+	if (type < 0 || type >= nummobjinfo)
 		return "<Invalid mobj type>";
-	else if (type >= MT_FIRSTFREESLOT)
-		return FREE_MOBJS[type - MT_FIRSTFREESLOT]; // This doesn't include "MT_"...
 	else
-		return MOBJTYPE_LIST[type];
+		return mobjinfo[type]->name;
 }
 
 static const char *MobjThinkerName(const mobj_t *mobj)
diff --git a/src/p_user.c b/src/p_user.c
index 7cd128cf080792f64df4a56ca4aeb4e9076e6b94..445e1246f86374521b2d17cf777a48aabc1b8b6c 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -349,7 +349,7 @@ void P_GiveEmerald(boolean spawnObj)
 			if (!emmo)
 				continue;
 			P_SetTarget(&emmo->target, players[i].mo);
-			P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em);
+			P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em);
 
 			// Make sure we're not being carried before our tracer is changed
 			if (players[i].powers[pw_carry] != CR_NIGHTSMODE)
@@ -2138,14 +2138,14 @@ void P_SpawnThokMobj(player_t *player)
 	else
 	{
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type].height, player->mo->scale);
+			zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type]->height, player->mo->scale);
 		else
 			zheight = player->mo->z - FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT);
 
-		if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT))
+		if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT))
 			zheight = player->mo->floorz;
-		else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type].height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT))
-			zheight = player->mo->ceilingz - FixedMul(mobjinfo[type].height, player->mo->scale);
+		else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type]->height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT))
+			zheight = player->mo->ceilingz - FixedMul(mobjinfo[type]->height, player->mo->scale);
 
 		mobj = P_SpawnMobj(player->mo->x, player->mo->y, zheight, type);
 		if (P_MobjWasRemoved(mobj))
@@ -2202,14 +2202,14 @@ void P_SpawnSpinMobj(player_t *player, mobjtype_t type)
 	else
 	{
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type].height, player->mo->scale);
+			zheight = player->mo->z + player->mo->height + FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT) - FixedMul(mobjinfo[type]->height, player->mo->scale);
 		else
 			zheight = player->mo->z - FixedDiv(P_GetPlayerHeight(player) - player->mo->height, 3*FRACUNIT);
 
-		if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT))
+		if (!(player->mo->eflags & MFE_VERTICALFLIP) && zheight < player->mo->floorz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT))
 			zheight = player->mo->floorz;
-		else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type].height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type].flags & MF_NOCLIPHEIGHT))
-			zheight = player->mo->ceilingz - FixedMul(mobjinfo[type].height, player->mo->scale);
+		else if (player->mo->eflags & MFE_VERTICALFLIP && zheight + FixedMul(mobjinfo[type]->height, player->mo->scale) > player->mo->ceilingz && !(mobjinfo[type]->flags & MF_NOCLIPHEIGHT))
+			zheight = player->mo->ceilingz - FixedMul(mobjinfo[type]->height, player->mo->scale);
 
 		mobj = P_SpawnMobj(player->mo->x, player->mo->y, zheight, type);
 		if (P_MobjWasRemoved(mobj))
@@ -2483,7 +2483,7 @@ boolean P_PlayerHitFloor(player_t *player, boolean dorollstuff)
 							i++;
 							throwang += ANG30;
 						}
-						if (mobjinfo[type].seesound && missile)
+						if (mobjinfo[type]->seesound && missile)
 							S_StartSound(missile, missile->info->seesound);
 					}
 				}
@@ -3029,7 +3029,7 @@ static void P_CheckUnderwaterAndSpaceTimer(player_t *player)
 	 || (timeleft ==  1*TICRATE) // 0
 	) {
 		fixed_t height = (player->mo->eflags & MFE_VERTICALFLIP)
-		? player->mo->z - FixedMul(8*FRACUNIT + mobjinfo[MT_DROWNNUMBERS].height, FixedMul(player->mo->scale, player->shieldscale))
+		? player->mo->z - FixedMul(8*FRACUNIT + mobjinfo[MT_DROWNNUMBERS]->height, FixedMul(player->mo->scale, player->shieldscale))
 		: player->mo->z + player->mo->height + FixedMul(8*FRACUNIT, FixedMul(player->mo->scale, player->shieldscale));
 
 		mobj_t *numbermobj = P_SpawnMobj(player->mo->x, player->mo->y, height, MT_DROWNNUMBERS);
@@ -3254,8 +3254,8 @@ static void P_DoPlayerHeadSigns(player_t *player)
 				}
 				else
 				{
-					sign->z -= mobjinfo[MT_TAG].height;
-					sign->old_z -= mobjinfo[MT_TAG].height;
+					sign->z -= mobjinfo[MT_TAG]->height;
+					sign->old_z -= mobjinfo[MT_TAG]->height;
 				}
 			}
 		}
@@ -3272,7 +3272,7 @@ static void P_DoPlayerHeadSigns(player_t *player)
 			zofs = player->mo->momz;
 			if (player_is_flipped)
 			{
-				zofs += player->mo->height - P_GetPlayerHeight(player) - mobjinfo[MT_GOTFLAG].height - FixedMul(16 * FRACUNIT, player->mo->scale);
+				zofs += player->mo->height - P_GetPlayerHeight(player) - mobjinfo[MT_GOTFLAG]->height - FixedMul(16 * FRACUNIT, player->mo->scale);
 			}
 			else
 			{
@@ -4813,7 +4813,7 @@ static void P_DoSpinAbility(player_t *player, ticcmd_t *cmd)
 
 							P_SetMobjState(player->mo, S_PLAY_FIRE);
 
-#define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem].height)/2)
+#define zpos(posmo) (posmo->z + (posmo->height - mobjinfo[player->revitem]->height)/2)
 							if (lockon)
 							{
 								player->mo->angle = R_PointToAngle2(player->mo->x, player->mo->y, lockon->x, lockon->y);
@@ -6369,10 +6369,10 @@ static void P_ShootLine(mobj_t *source, mobj_t *dest, fixed_t height)
 	temp = dest->z;
 	dest->z = height;
 
-	seesound = mobjinfo[MT_REDRING].seesound;
-	speed = mobjinfo[MT_REDRING].speed;
-	mobjinfo[MT_REDRING].seesound = sfx_None;
-	mobjinfo[MT_REDRING].speed = 20*FRACUNIT;
+	seesound = mobjinfo[MT_REDRING]->seesound;
+	speed = mobjinfo[MT_REDRING]->speed;
+	mobjinfo[MT_REDRING]->seesound = sfx_None;
+	mobjinfo[MT_REDRING]->speed = 20*FRACUNIT;
 
 	mo = P_SpawnXYZMissile(source, dest, MT_REDRING, source->x, source->y, height);
 
@@ -6408,13 +6408,13 @@ static void P_ShootLine(mobj_t *source, mobj_t *dest, fixed_t height)
 		}
 		else
 		{
-			mobjinfo[MT_REDRING].seesound = seesound;
-			mobjinfo[MT_REDRING].speed = speed;
+			mobjinfo[MT_REDRING]->seesound = seesound;
+			mobjinfo[MT_REDRING]->speed = speed;
 			return;
 		}
 	}
-	mobjinfo[MT_REDRING].seesound = seesound;
-	mobjinfo[MT_REDRING].speed = speed;
+	mobjinfo[MT_REDRING]->seesound = seesound;
+	mobjinfo[MT_REDRING]->speed = speed;
 }
 
 #define MAXDRILLSPEED 14000
@@ -7030,7 +7030,7 @@ static void P_DoNiGHTSCapsule(player_t *player)
 
 						emmo = P_SpawnMobj(players[i].mo->x, players[i].mo->y, players[i].mo->z + players[i].mo->info->height, MT_GOTEMERALD);
 						P_SetTarget(&emmo->target, players[i].mo);
-						P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em);
+						P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em);
 					}*/
 
 					if (player->powers[pw_carry] == CR_NIGHTSMODE)
@@ -7043,7 +7043,7 @@ static void P_DoNiGHTSCapsule(player_t *player)
 						{
 							emmo->health = em; // for identification
 							P_SetTarget(&emmo->target, player->mo);
-							P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD].meleestate + em);
+							P_SetMobjState(emmo, mobjinfo[MT_GOTEMERALD]->meleestate + em);
 							P_SetTarget(&player->mo->tracer, emmo);
 						}
 					}
@@ -7073,7 +7073,7 @@ static void P_DoNiGHTSCapsule(player_t *player)
 						idya->extravalue2 = player->mare/5;
 						idya->health = player->mare + 1; // for identification
 						P_SetTarget(&idya->target, player->mo);
-						P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD].missilestate + ((player->mare + 1) % 5));
+						P_SetMobjState(idya, mobjinfo[MT_GOTEMERALD]->missilestate + ((player->mare + 1) % 5));
 
 						if (player->mo->tracer)
 						{
@@ -7405,7 +7405,7 @@ static void P_NiGHTSMovement(player_t *player)
 		fixed_t z = player->mo->z + player->mo->height/2;
 
 		if (player->mo->eflags & MFE_VERTICALFLIP)
-			z -= FixedMul(mobjinfo[MT_NIGHTSPARKLE].height, player->mo->scale);
+			z -= FixedMul(mobjinfo[MT_NIGHTSPARKLE]->height, player->mo->scale);
 
 		firstmobj = P_SpawnMobj(player->mo->x + P_ReturnThrustX(player->mo, player->mo->angle+ANGLE_90, spawndist), player->mo->y + P_ReturnThrustY(player->mo, player->mo->angle+ANGLE_90, spawndist), z, MT_NIGHTSPARKLE);
 		if (!P_MobjWasRemoved(firstmobj))
@@ -7414,7 +7414,7 @@ static void P_NiGHTSMovement(player_t *player)
 			P_SetScale(firstmobj, player->mo->scale, true);
 			// Superloop turns sparkles red
 			if (player->powers[pw_nights_superloop])
-				P_SetMobjState(firstmobj, mobjinfo[MT_NIGHTSPARKLE].seestate);
+				P_SetMobjState(firstmobj, mobjinfo[MT_NIGHTSPARKLE]->seestate);
 		}
 		secondmobj = P_SpawnMobj(player->mo->x + P_ReturnThrustX(player->mo, player->mo->angle-ANGLE_90, spawndist), player->mo->y + P_ReturnThrustY(player->mo, player->mo->angle-ANGLE_90, spawndist), z, MT_NIGHTSPARKLE);
 		if (!P_MobjWasRemoved(secondmobj))
@@ -7423,7 +7423,7 @@ static void P_NiGHTSMovement(player_t *player)
 			P_SetScale(secondmobj, player->mo->scale, true);
 			// Superloop turns sparkles red
 			if (player->powers[pw_nights_superloop])
-				P_SetMobjState(secondmobj, mobjinfo[MT_NIGHTSPARKLE].seestate);
+				P_SetMobjState(secondmobj, mobjinfo[MT_NIGHTSPARKLE]->seestate);
 		}
 	}
 
@@ -7621,7 +7621,7 @@ static void P_NiGHTSMovement(player_t *player)
 	{
 		mobjtype_t splishtype = (player->mo->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH;
 		mobj_t *water = P_SpawnMobj(player->mo->x, player->mo->y,
-			((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype].height, player->mo->scale) : player->mo->watertop), splishtype);
+			((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype]->height, player->mo->scale) : player->mo->watertop), splishtype);
 		if (!P_MobjWasRemoved(water))
 		{
 			if (player->mo->eflags & MFE_GOOWATER)
@@ -7859,7 +7859,7 @@ void P_ElementalFire(player_t *player, boolean cropcircle)
 	I_Assert(!P_MobjWasRemoved(player->mo));
 
 	if (player->mo->eflags & MFE_VERTICALFLIP)
-		ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_SPINFIRE].height, player->mo->scale);
+		ground = player->mo->ceilingz - FixedMul(mobjinfo[MT_SPINFIRE]->height, player->mo->scale);
 	else
 		ground = player->mo->floorz;
 
@@ -7906,7 +7906,7 @@ void P_ElementalFire(player_t *player, boolean cropcircle)
 			{
 				ground = P_GetSlopeZAt(player->mo->standingslope, newx, newy);
 				if (player->mo->eflags & MFE_VERTICALFLIP)
-					ground -= FixedMul(mobjinfo[MT_SPINFIRE].height, player->mo->scale);
+					ground -= FixedMul(mobjinfo[MT_SPINFIRE]->height, player->mo->scale);
 			}
 
 			flame = P_SpawnMobj(newx, newy, ground, MT_SPINFIRE);
@@ -8539,7 +8539,7 @@ void P_MovePlayer(player_t *player)
 	{
 		mobjtype_t splishtype = (player->mo->eflags & MFE_TOUCHLAVA) ? MT_LAVASPLISH : MT_SPLISH;
 		mobj_t *water = P_SpawnMobj(player->mo->x - P_ReturnThrustX(NULL, player->mo->angle, player->mo->radius), player->mo->y - P_ReturnThrustY(NULL, player->mo->angle, player->mo->radius),
-			((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype].height, player->mo->scale) : player->mo->watertop), splishtype);
+			((player->mo->eflags & MFE_VERTICALFLIP) ? player->mo->waterbottom - FixedMul(mobjinfo[splishtype]->height, player->mo->scale) : player->mo->watertop), splishtype);
 		if (!P_MobjWasRemoved(water))
 		{
 			if (player->mo->eflags & MFE_GOOWATER)
@@ -10836,7 +10836,7 @@ void P_DoPityCheck(player_t *player)
 		P_SwitchShield(player, SH_PITY);
 
 		if (player->pity > 0)
-			S_StartSound(player->mo, mobjinfo[MT_PITY_ICON].seesound);
+			S_StartSound(player->mo, mobjinfo[MT_PITY_ICON]->seesound);
 
 		player->pity = 0;
 	}
diff --git a/src/r_skins.c b/src/r_skins.c
index d0d2eed6287ed69b27fef7eb7fe3acc4c7c61b3c..d5531b72fe1b5629d31a389652fdd06a3ebfd43b 100644
--- a/src/r_skins.c
+++ b/src/r_skins.c
@@ -230,8 +230,8 @@ static void Sk_SetDefaultValue(skin_t *skin)
 	skin->mindash = 15<<FRACBITS;
 	skin->maxdash = 70<<FRACBITS;
 
-	skin->radius = mobjinfo[MT_PLAYER].radius;
-	skin->height = mobjinfo[MT_PLAYER].height;
+	skin->radius = mobjinfo[MT_PLAYER]->radius;
+	skin->height = mobjinfo[MT_PLAYER]->height;
 	skin->spinheight = FixedMul(skin->height, 2*FRACUNIT/3);
 
 	skin->shieldscale = FRACUNIT;
@@ -426,9 +426,9 @@ static void SetSkin(player_t *player, INT32 skinnum)
 
 	player->charflags = (UINT32)skin->flags;
 
-	player->thokitem = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].painchance : (UINT32)skin->thokitem;
-	player->spinitem = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER].damage : (UINT32)skin->spinitem;
-	player->revitem = skin->revitem < 0 ? (mobjtype_t)mobjinfo[MT_PLAYER].raisestate : (UINT32)skin->revitem;
+	player->thokitem = skin->thokitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->painchance : (UINT32)skin->thokitem;
+	player->spinitem = skin->spinitem < 0 ? (UINT32)mobjinfo[MT_PLAYER]->damage : (UINT32)skin->spinitem;
+	player->revitem = skin->revitem < 0 ? (mobjtype_t)mobjinfo[MT_PLAYER]->raisestate : (UINT32)skin->revitem;
 	player->followitem = skin->followitem;
 
 	if (((player->powers[pw_shield] & SH_NOSTACK) == SH_PINK) && (player->revitem == MT_LHRT || player->spinitem == MT_LHRT || player->thokitem == MT_LHRT)) // Healers can't keep their buff.