uploaded to dev.alpinelinux.org due to size
Patch-Source: https://github.com/STJr/SRB2/compare/6ede8aa9dcd33f8f8e4dfdee502f874b63c28a33...639b58c6d718452ef343a0bc927d043bed9e40d6
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index b02d0f69cb..6ea63e9474 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -143,7 +143,7 @@ if("${CMAKE_COMPILER_IS_GNUCC}" AND "${CMAKE_SYSTEM_NAME}" MATCHES "Windows")
 	endif()
 endif()
 
-target_compile_features(SRB2SDL2 PRIVATE c_std_11 cxx_std_17)
+target_compile_features(SRB2SDL2 PRIVATE c_std_23 cxx_std_17)
 
 ### Configuration
 set(SRB2_CONFIG_DEV_BUILD OFF CACHE BOOL
diff --git a/src/d_think.h b/src/d_think.h
index 76c1bb5b8a..077f3e3b0b 100644
--- a/src/d_think.h
+++ b/src/d_think.h
@@ -28,18 +28,11 @@
 // To compile this as "ANSI C with classes" we will need to handle the various
 //  action functions cleanly.
 //
-typedef void (*actionf_v)();
 typedef void (*actionf_p1)(void *);
 
-typedef union
-{
-	actionf_v acv;
-	actionf_p1 acp1;
-} actionf_t;
-
 // Historically, "think_t" is yet another function pointer to a routine
 // to handle an actor.
-typedef actionf_t think_t;
+typedef actionf_p1 think_t;
 
 // Doubly linked list of actors.
 typedef struct thinker_s
diff --git a/src/deh_lua.c b/src/deh_lua.c
index 48f737a1ff..d01aa44a73 100644
--- a/src/deh_lua.c
+++ b/src/deh_lua.c
@@ -188,7 +188,7 @@ static inline int lib_freeslot(lua_State *L)
 // Arguments: mobj_t actor, int var1, int var2
 static int action_call(lua_State *L)
 {
-	actionf_t *action = *((actionf_t **)luaL_checkudata(L, 1, META_ACTION));
+	actionf_p1 *action = *((actionf_p1 **)luaL_checkudata(L, 1, META_ACTION));
 	mobj_t *actor = *((mobj_t **)luaL_checkudata(L, 2, META_MOBJ));
 
 	var1 = (INT32)luaL_optinteger(L, 3, 0);
@@ -199,7 +199,7 @@ static int action_call(lua_State *L)
 		return LUA_ErrInvalid(L, "mobj_t");
 	}
 
-	action->acp1(actor);
+	(*action)(actor);
 	return 0;
 }
 
@@ -632,7 +632,7 @@ FUNCINLINE static ATTRINLINE int getEnum(lua_State *L, boolean mathlib, const ch
 		{
 			if (fasticmp(word, actionpointers[i].name))
 			{
-				// We push the actionf_t* itself as userdata!
+				// We push the actionf_p1* itself as userdata!
 				LUA_PushUserdata(L, &actionpointers[i].action, META_ACTION);
 				return 1;
 			}
@@ -770,7 +770,7 @@ static int lib_getActionName(lua_State *L)
 {
 	if (lua_isuserdata(L, 1)) // arg 1 is built-in action, expect action userdata
 	{
-		actionf_t *action = *((actionf_t **)luaL_checkudata(L, 1, META_ACTION));
+		actionf_p1 *action = *((actionf_p1 **)luaL_checkudata(L, 1, META_ACTION));
 		const char *name = NULL;
 		if (!action)
 			return luaL_error(L, "not a valid action?");
@@ -840,11 +840,11 @@ int LUA_SOCLib(lua_State *L)
 
 const char *LUA_GetActionName(void *action)
 {
-	actionf_t *act = (actionf_t *)action;
+	actionf_p1 *act = (actionf_p1 *)action;
 	size_t z;
 	for (z = 0; actionpointers[z].name; z++)
 	{
-		if (actionpointers[z].action.acv == act->acv)
+		if (actionpointers[z].action == *act)
 			return actionpointers[z].name;
 	}
 	return NULL;
@@ -859,8 +859,6 @@ void LUA_SetActionByName(void *state, const char *actiontocompare)
 		if (fasticmp(actiontocompare, actionpointers[z].name))
 		{
 			st->action = actionpointers[z].action;
-			st->action.acv = actionpointers[z].action.acv; // assign
-			st->action.acp1 = actionpointers[z].action.acp1;
 			return;
 		}
 	}
diff --git a/src/deh_soc.c b/src/deh_soc.c
index 343beb3012..82e806c115 100644
--- a/src/deh_soc.c
+++ b/src/deh_soc.c
@@ -2844,7 +2844,7 @@ void readframe(MYFILE *f, INT32 num)
 
 				for (z = 0; actionpointers[z].name; z++)
 				{
-					if (actionpointers[z].action.acv == states[num].action.acv)
+					if (actionpointers[z].action == states[num].action)
 						break;
 				}
 
@@ -2856,8 +2856,6 @@ void readframe(MYFILE *f, INT32 num)
 						if (fastcmp(actiontocompare, actionpointers[z].name))
 						{
 							states[num].action = actionpointers[z].action;
-							states[num].action.acv = actionpointers[z].action.acv; // assign
-							states[num].action.acp1 = actionpointers[z].action.acp1;
 							found = true;
 							break;
 						}
diff --git a/src/deh_tables.c b/src/deh_tables.c
index d714632535..46dc61034d 100644
--- a/src/deh_tables.c
+++ b/src/deh_tables.c
@@ -73,278 +73,278 @@ struct flickytypes_s FLICKYTYPES[] = {
 // DO NOT FORGET TO SYNC THIS LIST WITH THE ACTIONNUM ENUM IN INFO.H
 actionpointer_t actionpointers[] =
 {
-	{{A_Explode},                "A_EXPLODE"},
-	{{A_Pain},                   "A_PAIN"},
-	{{A_Fall},                   "A_FALL"},
-	{{A_MonitorPop},             "A_MONITORPOP"},
-	{{A_GoldMonitorPop},         "A_GOLDMONITORPOP"},
-	{{A_GoldMonitorRestore},     "A_GOLDMONITORRESTORE"},
-	{{A_GoldMonitorSparkle},     "A_GOLDMONITORSPARKLE"},
-	{{A_Look},                   "A_LOOK"},
-	{{A_Chase},                  "A_CHASE"},
-	{{A_FaceStabChase},          "A_FACESTABCHASE"},
-	{{A_FaceStabRev},            "A_FACESTABREV"},
-	{{A_FaceStabHurl},           "A_FACESTABHURL"},
-	{{A_FaceStabMiss},           "A_FACESTABMISS"},
-	{{A_StatueBurst},            "A_STATUEBURST"},
-	{{A_FaceTarget},             "A_FACETARGET"},
-	{{A_FaceTracer},             "A_FACETRACER"},
-	{{A_Scream},                 "A_SCREAM"},
-	{{A_BossDeath},              "A_BOSSDEATH"},
-	{{A_SetShadowScale},         "A_SETSHADOWSCALE"},
-	{{A_ShadowScream},           "A_SHADOWSCREAM"},
-	{{A_CustomPower},            "A_CUSTOMPOWER"},
-	{{A_GiveWeapon},             "A_GIVEWEAPON"},
-	{{A_RingBox},                "A_RINGBOX"},
-	{{A_Invincibility},          "A_INVINCIBILITY"},
-	{{A_SuperSneakers},          "A_SUPERSNEAKERS"},
-	{{A_BunnyHop},               "A_BUNNYHOP"},
-	{{A_BubbleSpawn},            "A_BUBBLESPAWN"},
-	{{A_FanBubbleSpawn},         "A_FANBUBBLESPAWN"},
-	{{A_BubbleRise},             "A_BUBBLERISE"},
-	{{A_BubbleCheck},            "A_BUBBLECHECK"},
-	{{A_AwardScore},             "A_AWARDSCORE"},
-	{{A_ExtraLife},              "A_EXTRALIFE"},
-	{{A_GiveShield},             "A_GIVESHIELD"},
-	{{A_GravityBox},             "A_GRAVITYBOX"},
-	{{A_ScoreRise},              "A_SCORERISE"},
-	{{A_AttractChase},           "A_ATTRACTCHASE"},
-	{{A_DropMine},               "A_DROPMINE"},
-	{{A_FishJump},               "A_FISHJUMP"},
-	{{A_ThrownRing},             "A_THROWNRING"},
-	{{A_SetSolidSteam},          "A_SETSOLIDSTEAM"},
-	{{A_UnsetSolidSteam},        "A_UNSETSOLIDSTEAM"},
-	{{A_SignSpin},               "A_SIGNSPIN"},
-	{{A_SignPlayer},             "A_SIGNPLAYER"},
-	{{A_OverlayThink},           "A_OVERLAYTHINK"},
-	{{A_JetChase},               "A_JETCHASE"},
-	{{A_JetbThink},              "A_JETBTHINK"},
-	{{A_JetgThink},              "A_JETGTHINK"},
-	{{A_JetgShoot},              "A_JETGSHOOT"},
-	{{A_ShootBullet},            "A_SHOOTBULLET"},
-	{{A_MinusDigging},           "A_MINUSDIGGING"},
-	{{A_MinusPopup},             "A_MINUSPOPUP"},
-	{{A_MinusCheck},             "A_MINUSCHECK"},
-	{{A_ChickenCheck},           "A_CHICKENCHECK"},
-	{{A_MouseThink},             "A_MOUSETHINK"},
-	{{A_DetonChase},             "A_DETONCHASE"},
-	{{A_CapeChase},              "A_CAPECHASE"},
-	{{A_RotateSpikeBall},        "A_ROTATESPIKEBALL"},
-	{{A_SlingAppear},            "A_SLINGAPPEAR"},
-	{{A_UnidusBall},             "A_UNIDUSBALL"},
-	{{A_RockSpawn},              "A_ROCKSPAWN"},
-	{{A_SetFuse},                "A_SETFUSE"},
-	{{A_CrawlaCommanderThink},   "A_CRAWLACOMMANDERTHINK"},
-	{{A_SmokeTrailer},           "A_SMOKETRAILER"},
-	{{A_RingExplode},            "A_RINGEXPLODE"},
-	{{A_OldRingExplode},         "A_OLDRINGEXPLODE"},
-	{{A_MixUp},                  "A_MIXUP"},
-	{{A_RecyclePowers},          "A_RECYCLEPOWERS"},
-	{{A_Boss1Chase},             "A_BOSS1CHASE"},
-	{{A_FocusTarget},            "A_FOCUSTARGET"},
-	{{A_Boss2Chase},             "A_BOSS2CHASE"},
-	{{A_Boss2Pogo},              "A_BOSS2POGO"},
-	{{A_BossZoom},               "A_BOSSZOOM"},
-	{{A_BossScream},             "A_BOSSSCREAM"},
-	{{A_Boss2TakeDamage},        "A_BOSS2TAKEDAMAGE"},
-	{{A_Boss7Chase},             "A_BOSS7CHASE"},
-	{{A_GoopSplat},              "A_GOOPSPLAT"},
-	{{A_Boss2PogoSFX},           "A_BOSS2POGOSFX"},
-	{{A_Boss2PogoTarget},        "A_BOSS2POGOTARGET"},
-	{{A_BossJetFume},            "A_BOSSJETFUME"},
-	{{A_EggmanBox},              "A_EGGMANBOX"},
-	{{A_TurretFire},             "A_TURRETFIRE"},
-	{{A_SuperTurretFire},        "A_SUPERTURRETFIRE"},
-	{{A_TurretStop},             "A_TURRETSTOP"},
-	{{A_JetJawRoam},             "A_JETJAWROAM"},
-	{{A_JetJawChomp},            "A_JETJAWCHOMP"},
-	{{A_PointyThink},            "A_POINTYTHINK"},
-	{{A_CheckBuddy},             "A_CHECKBUDDY"},
-	{{A_HoodFire},               "A_HOODFIRE"},
-	{{A_HoodThink},              "A_HOODTHINK"},
-	{{A_HoodFall},               "A_HOODFALL"},
-	{{A_ArrowBonks},             "A_ARROWBONKS"},
-	{{A_SnailerThink},           "A_SNAILERTHINK"},
-	{{A_SharpChase},             "A_SHARPCHASE"},
-	{{A_SharpSpin},              "A_SHARPSPIN"},
-	{{A_SharpDecel},             "A_SHARPDECEL"},
-	{{A_CrushstaceanWalk},       "A_CRUSHSTACEANWALK"},
-	{{A_CrushstaceanPunch},      "A_CRUSHSTACEANPUNCH"},
-	{{A_CrushclawAim},           "A_CRUSHCLAWAIM"},
-	{{A_CrushclawLaunch},        "A_CRUSHCLAWLAUNCH"},
-	{{A_VultureVtol},            "A_VULTUREVTOL"},
-	{{A_VultureCheck},           "A_VULTURECHECK"},
-	{{A_VultureHover},           "A_VULTUREHOVER"},
-	{{A_VultureBlast},           "A_VULTUREBLAST"},
-	{{A_VultureFly},             "A_VULTUREFLY"},
-	{{A_SkimChase},              "A_SKIMCHASE"},
-	{{A_1upThinker},             "A_1UPTHINKER"},
-	{{A_SkullAttack},            "A_SKULLATTACK"},
-	{{A_LobShot},                "A_LOBSHOT"},
-	{{A_FireShot},               "A_FIRESHOT"},
-	{{A_SuperFireShot},          "A_SUPERFIRESHOT"},
-	{{A_BossFireShot},           "A_BOSSFIRESHOT"},
-	{{A_Boss7FireMissiles},      "A_BOSS7FIREMISSILES"},
-	{{A_Boss1Laser},             "A_BOSS1LASER"},
-	{{A_Boss4Reverse},           "A_BOSS4REVERSE"},
-	{{A_Boss4SpeedUp},           "A_BOSS4SPEEDUP"},
-	{{A_Boss4Raise},             "A_BOSS4RAISE"},
-	{{A_SparkFollow},            "A_SPARKFOLLOW"},
-	{{A_BuzzFly},                "A_BUZZFLY"},
-	{{A_GuardChase},             "A_GUARDCHASE"},
-	{{A_EggShield},              "A_EGGSHIELD"},
-	{{A_SetReactionTime},        "A_SETREACTIONTIME"},
-	{{A_Boss1Spikeballs},        "A_BOSS1SPIKEBALLS"},
-	{{A_Boss3TakeDamage},        "A_BOSS3TAKEDAMAGE"},
-	{{A_Boss3Path},              "A_BOSS3PATH"},
-	{{A_Boss3ShockThink},        "A_BOSS3SHOCKTHINK"},
-	{{A_Shockwave},              "A_SHOCKWAVE"},
-	{{A_LinedefExecute},         "A_LINEDEFEXECUTE"},
-	{{A_LinedefExecuteFromArg},  "A_LINEDEFEXECUTEFROMARG"},
-	{{A_PlaySeeSound},           "A_PLAYSEESOUND"},
-	{{A_PlayAttackSound},        "A_PLAYATTACKSOUND"},
-	{{A_PlayActiveSound},        "A_PLAYACTIVESOUND"},
-	{{A_SpawnObjectAbsolute},    "A_SPAWNOBJECTABSOLUTE"},
-	{{A_SpawnObjectRelative},    "A_SPAWNOBJECTRELATIVE"},
-	{{A_ChangeAngleRelative},    "A_CHANGEANGLERELATIVE"},
-	{{A_ChangeAngleAbsolute},    "A_CHANGEANGLEABSOLUTE"},
-	{{A_RollAngle},              "A_ROLLANGLE"},
-	{{A_ChangeRollAngleRelative},"A_CHANGEROLLANGLERELATIVE"},
-	{{A_ChangeRollAngleAbsolute},"A_CHANGEROLLANGLEABSOLUTE"},
-	{{A_PlaySound},              "A_PLAYSOUND"},
-	{{A_FindTarget},             "A_FINDTARGET"},
-	{{A_FindTracer},             "A_FINDTRACER"},
-	{{A_SetTics},                "A_SETTICS"},
-	{{A_SetRandomTics},          "A_SETRANDOMTICS"},
-	{{A_ChangeColorRelative},    "A_CHANGECOLORRELATIVE"},
-	{{A_ChangeColorAbsolute},    "A_CHANGECOLORABSOLUTE"},
-	{{A_Dye},                    "A_DYE"},
-	{{A_SetTranslation},         "A_SETTRANSLATION"},
-	{{A_MoveRelative},           "A_MOVERELATIVE"},
-	{{A_MoveAbsolute},           "A_MOVEABSOLUTE"},
-	{{A_Thrust},                 "A_THRUST"},
-	{{A_ZThrust},                "A_ZTHRUST"},
-	{{A_SetTargetsTarget},       "A_SETTARGETSTARGET"},
-	{{A_SetObjectFlags},         "A_SETOBJECTFLAGS"},
-	{{A_SetObjectFlags2},        "A_SETOBJECTFLAGS2"},
-	{{A_RandomState},            "A_RANDOMSTATE"},
-	{{A_RandomStateRange},       "A_RANDOMSTATERANGE"},
-	{{A_StateRangeByAngle},      "A_STATERANGEBYANGLE"},
-	{{A_StateRangeByParameter},  "A_STATERANGEBYPARAMETER"},
-	{{A_DualAction},             "A_DUALACTION"},
-	{{A_RemoteAction},           "A_REMOTEACTION"},
-	{{A_ToggleFlameJet},         "A_TOGGLEFLAMEJET"},
-	{{A_OrbitNights},            "A_ORBITNIGHTS"},
-	{{A_GhostMe},                "A_GHOSTME"},
-	{{A_SetObjectState},         "A_SETOBJECTSTATE"},
-	{{A_SetObjectTypeState},     "A_SETOBJECTTYPESTATE"},
-	{{A_KnockBack},              "A_KNOCKBACK"},
-	{{A_PushAway},               "A_PUSHAWAY"},
-	{{A_RingDrain},              "A_RINGDRAIN"},
-	{{A_SplitShot},              "A_SPLITSHOT"},
-	{{A_MissileSplit},           "A_MISSILESPLIT"},
-	{{A_MultiShot},              "A_MULTISHOT"},
-	{{A_InstaLoop},              "A_INSTALOOP"},
-	{{A_Custom3DRotate},         "A_CUSTOM3DROTATE"},
-	{{A_SearchForPlayers},       "A_SEARCHFORPLAYERS"},
-	{{A_CheckRandom},            "A_CHECKRANDOM"},
-	{{A_CheckTargetRings},       "A_CHECKTARGETRINGS"},
-	{{A_CheckRings},             "A_CHECKRINGS"},
-	{{A_CheckTotalRings},        "A_CHECKTOTALRINGS"},
-	{{A_CheckHealth},            "A_CHECKHEALTH"},
-	{{A_CheckRange},             "A_CHECKRANGE"},
-	{{A_CheckHeight},            "A_CHECKHEIGHT"},
-	{{A_CheckTrueRange},         "A_CHECKTRUERANGE"},
-	{{A_CheckThingCount},        "A_CHECKTHINGCOUNT"},
-	{{A_CheckAmbush},            "A_CHECKAMBUSH"},
-	{{A_CheckCustomValue},       "A_CHECKCUSTOMVALUE"},
-	{{A_CheckCusValMemo},        "A_CHECKCUSVALMEMO"},
-	{{A_SetCustomValue},         "A_SETCUSTOMVALUE"},
-	{{A_UseCusValMemo},          "A_USECUSVALMEMO"},
-	{{A_RelayCustomValue},       "A_RELAYCUSTOMVALUE"},
-	{{A_CusValAction},           "A_CUSVALACTION"},
-	{{A_ForceStop},              "A_FORCESTOP"},
-	{{A_ForceWin},               "A_FORCEWIN"},
-	{{A_SpikeRetract},           "A_SPIKERETRACT"},
-	{{A_InfoState},              "A_INFOSTATE"},
-	{{A_Repeat},                 "A_REPEAT"},
-	{{A_SetScale},               "A_SETSCALE"},
-	{{A_RemoteDamage},           "A_REMOTEDAMAGE"},
-	{{A_HomingChase},            "A_HOMINGCHASE"},
-	{{A_TrapShot},               "A_TRAPSHOT"},
-	{{A_VileTarget},             "A_VILETARGET"},
-	{{A_VileAttack},             "A_VILEATTACK"},
-	{{A_VileFire},               "A_VILEFIRE"},
-	{{A_BrakChase},              "A_BRAKCHASE"},
-	{{A_BrakFireShot},           "A_BRAKFIRESHOT"},
-	{{A_BrakLobShot},            "A_BRAKLOBSHOT"},
-	{{A_NapalmScatter},          "A_NAPALMSCATTER"},
-	{{A_SpawnFreshCopy},         "A_SPAWNFRESHCOPY"},
-	{{A_FlickySpawn},            "A_FLICKYSPAWN"},
-	{{A_FlickyCenter},           "A_FLICKYCENTER"},
-	{{A_FlickyAim},              "A_FLICKYAIM"},
-	{{A_FlickyFly},              "A_FLICKYFLY"},
-	{{A_FlickySoar},             "A_FLICKYSOAR"},
-	{{A_FlickyCoast},            "A_FLICKYCOAST"},
-	{{A_FlickyHop},              "A_FLICKYHOP"},
-	{{A_FlickyFlounder},         "A_FLICKYFLOUNDER"},
-	{{A_FlickyCheck},            "A_FLICKYCHECK"},
-	{{A_FlickyHeightCheck},      "A_FLICKYHEIGHTCHECK"},
-	{{A_FlickyFlutter},          "A_FLICKYFLUTTER"},
-	{{A_FlameParticle},          "A_FLAMEPARTICLE"},
-	{{A_FadeOverlay},            "A_FADEOVERLAY"},
-	{{A_Boss5Jump},              "A_BOSS5JUMP"},
-	{{A_LightBeamReset},         "A_LIGHTBEAMRESET"},
-	{{A_MineExplode},            "A_MINEEXPLODE"},
-	{{A_MineRange},              "A_MINERANGE"},
-	{{A_ConnectToGround},        "A_CONNECTTOGROUND"},
-	{{A_SpawnParticleRelative},  "A_SPAWNPARTICLERELATIVE"},
-	{{A_MultiShotDist},          "A_MULTISHOTDIST"},
-	{{A_WhoCaresIfYourSonIsABee},"A_WHOCARESIFYOURSONISABEE"},
-	{{A_ParentTriesToSleep},     "A_PARENTTRIESTOSLEEP"},
-	{{A_CryingToMomma},          "A_CRYINGTOMOMMA"},
-	{{A_CheckFlags2},            "A_CHECKFLAGS2"},
-	{{A_Boss5FindWaypoint},      "A_BOSS5FINDWAYPOINT"},
-	{{A_DoNPCSkid},              "A_DONPCSKID"},
-	{{A_DoNPCPain},              "A_DONPCPAIN"},
-	{{A_PrepareRepeat},          "A_PREPAREREPEAT"},
-	{{A_Boss5ExtraRepeat},       "A_BOSS5EXTRAREPEAT"},
-	{{A_Boss5Calm},              "A_BOSS5CALM"},
-	{{A_Boss5CheckOnGround},     "A_BOSS5CHECKONGROUND"},
-	{{A_Boss5CheckFalling},      "A_BOSS5CHECKFALLING"},
-	{{A_Boss5PinchShot},         "A_BOSS5PINCHSHOT"},
-	{{A_Boss5MakeItRain},        "A_BOSS5MAKEITRAIN"},
-	{{A_Boss5MakeJunk},          "A_BOSS5MAKEJUNK"},
-	{{A_LookForBetter},          "A_LOOKFORBETTER"},
-	{{A_Boss5BombExplode},       "A_BOSS5BOMBEXPLODE"},
-	{{A_DustDevilThink},         "A_DUSTDEVILTHINK"},
-	{{A_TNTExplode},             "A_TNTEXPLODE"},
-	{{A_DebrisRandom},           "A_DEBRISRANDOM"},
-	{{A_TrainCameo},             "A_TRAINCAMEO"},
-	{{A_TrainCameo2},            "A_TRAINCAMEO2"},
-	{{A_CanarivoreGas},          "A_CANARIVOREGAS"},
-	{{A_KillSegments},           "A_KILLSEGMENTS"},
-	{{A_SnapperSpawn},           "A_SNAPPERSPAWN"},
-	{{A_SnapperThinker},         "A_SNAPPERTHINKER"},
-	{{A_SaloonDoorSpawn},        "A_SALOONDOORSPAWN"},
-	{{A_MinecartSparkThink},     "A_MINECARTSPARKTHINK"},
-	{{A_ModuloToState},          "A_MODULOTOSTATE"},
-	{{A_LavafallRocks},          "A_LAVAFALLROCKS"},
-	{{A_LavafallLava},           "A_LAVAFALLLAVA"},
-	{{A_FallingLavaCheck},       "A_FALLINGLAVACHECK"},
-	{{A_FireShrink},             "A_FIRESHRINK"},
-	{{A_SpawnPterabytes},        "A_SPAWNPTERABYTES"},
-	{{A_PterabyteHover},         "A_PTERABYTEHOVER"},
-	{{A_RolloutSpawn},           "A_ROLLOUTSPAWN"},
-	{{A_RolloutRock},            "A_ROLLOUTROCK"},
-	{{A_DragonbomberSpawn},      "A_DRAGONBOMBERSPAWN"},
-	{{A_DragonWing},             "A_DRAGONWING"},
-	{{A_DragonSegment},          "A_DRAGONSEGMENT"},
-	{{A_ChangeHeight},           "A_CHANGEHEIGHT"},
-	{{NULL},                     "NONE"},
+	{A_Explode,                "A_EXPLODE"},
+	{A_Pain,                   "A_PAIN"},
+	{A_Fall,                   "A_FALL"},
+	{A_MonitorPop,             "A_MONITORPOP"},
+	{A_GoldMonitorPop,         "A_GOLDMONITORPOP"},
+	{A_GoldMonitorRestore,     "A_GOLDMONITORRESTORE"},
+	{A_GoldMonitorSparkle,     "A_GOLDMONITORSPARKLE"},
+	{A_Look,                   "A_LOOK"},
+	{A_Chase,                  "A_CHASE"},
+	{A_FaceStabChase,          "A_FACESTABCHASE"},
+	{A_FaceStabRev,            "A_FACESTABREV"},
+	{A_FaceStabHurl,           "A_FACESTABHURL"},
+	{A_FaceStabMiss,           "A_FACESTABMISS"},
+	{A_StatueBurst,            "A_STATUEBURST"},
+	{A_FaceTarget,             "A_FACETARGET"},
+	{A_FaceTracer,             "A_FACETRACER"},
+	{A_Scream,                 "A_SCREAM"},
+	{A_BossDeath,              "A_BOSSDEATH"},
+	{A_SetShadowScale,         "A_SETSHADOWSCALE"},
+	{A_ShadowScream,           "A_SHADOWSCREAM"},
+	{A_CustomPower,            "A_CUSTOMPOWER"},
+	{A_GiveWeapon,             "A_GIVEWEAPON"},
+	{A_RingBox,                "A_RINGBOX"},
+	{A_Invincibility,          "A_INVINCIBILITY"},
+	{A_SuperSneakers,          "A_SUPERSNEAKERS"},
+	{A_BunnyHop,               "A_BUNNYHOP"},
+	{A_BubbleSpawn,            "A_BUBBLESPAWN"},
+	{A_FanBubbleSpawn,         "A_FANBUBBLESPAWN"},
+	{A_BubbleRise,             "A_BUBBLERISE"},
+	{A_BubbleCheck,            "A_BUBBLECHECK"},
+	{A_AwardScore,             "A_AWARDSCORE"},
+	{A_ExtraLife,              "A_EXTRALIFE"},
+	{A_GiveShield,             "A_GIVESHIELD"},
+	{A_GravityBox,             "A_GRAVITYBOX"},
+	{A_ScoreRise,              "A_SCORERISE"},
+	{A_AttractChase,           "A_ATTRACTCHASE"},
+	{A_DropMine,               "A_DROPMINE"},
+	{A_FishJump,               "A_FISHJUMP"},
+	{A_ThrownRing,             "A_THROWNRING"},
+	{A_SetSolidSteam,          "A_SETSOLIDSTEAM"},
+	{A_UnsetSolidSteam,        "A_UNSETSOLIDSTEAM"},
+	{A_SignSpin,               "A_SIGNSPIN"},
+	{A_SignPlayer,             "A_SIGNPLAYER"},
+	{A_OverlayThink,           "A_OVERLAYTHINK"},
+	{A_JetChase,               "A_JETCHASE"},
+	{A_JetbThink,              "A_JETBTHINK"},
+	{A_JetgThink,              "A_JETGTHINK"},
+	{A_JetgShoot,              "A_JETGSHOOT"},
+	{A_ShootBullet,            "A_SHOOTBULLET"},
+	{A_MinusDigging,           "A_MINUSDIGGING"},
+	{A_MinusPopup,             "A_MINUSPOPUP"},
+	{A_MinusCheck,             "A_MINUSCHECK"},
+	{A_ChickenCheck,           "A_CHICKENCHECK"},
+	{A_MouseThink,             "A_MOUSETHINK"},
+	{A_DetonChase,             "A_DETONCHASE"},
+	{A_CapeChase,              "A_CAPECHASE"},
+	{A_RotateSpikeBall,        "A_ROTATESPIKEBALL"},
+	{A_SlingAppear,            "A_SLINGAPPEAR"},
+	{A_UnidusBall,             "A_UNIDUSBALL"},
+	{A_RockSpawn,              "A_ROCKSPAWN"},
+	{A_SetFuse,                "A_SETFUSE"},
+	{A_CrawlaCommanderThink,   "A_CRAWLACOMMANDERTHINK"},
+	{A_SmokeTrailer,           "A_SMOKETRAILER"},
+	{A_RingExplode,            "A_RINGEXPLODE"},
+	{A_OldRingExplode,         "A_OLDRINGEXPLODE"},
+	{A_MixUp,                  "A_MIXUP"},
+	{A_RecyclePowers,          "A_RECYCLEPOWERS"},
+	{A_Boss1Chase,             "A_BOSS1CHASE"},
+	{A_FocusTarget,            "A_FOCUSTARGET"},
+	{A_Boss2Chase,             "A_BOSS2CHASE"},
+	{A_Boss2Pogo,              "A_BOSS2POGO"},
+	{A_BossZoom,               "A_BOSSZOOM"},
+	{A_BossScream,             "A_BOSSSCREAM"},
+	{A_Boss2TakeDamage,        "A_BOSS2TAKEDAMAGE"},
+	{A_Boss7Chase,             "A_BOSS7CHASE"},
+	{A_GoopSplat,              "A_GOOPSPLAT"},
+	{A_Boss2PogoSFX,           "A_BOSS2POGOSFX"},
+	{A_Boss2PogoTarget,        "A_BOSS2POGOTARGET"},
+	{A_BossJetFume,            "A_BOSSJETFUME"},
+	{A_EggmanBox,              "A_EGGMANBOX"},
+	{A_TurretFire,             "A_TURRETFIRE"},
+	{A_SuperTurretFire,        "A_SUPERTURRETFIRE"},
+	{A_TurretStop,             "A_TURRETSTOP"},
+	{A_JetJawRoam,             "A_JETJAWROAM"},
+	{A_JetJawChomp,            "A_JETJAWCHOMP"},
+	{A_PointyThink,            "A_POINTYTHINK"},
+	{A_CheckBuddy,             "A_CHECKBUDDY"},
+	{A_HoodFire,               "A_HOODFIRE"},
+	{A_HoodThink,              "A_HOODTHINK"},
+	{A_HoodFall,               "A_HOODFALL"},
+	{A_ArrowBonks,             "A_ARROWBONKS"},
+	{A_SnailerThink,           "A_SNAILERTHINK"},
+	{A_SharpChase,             "A_SHARPCHASE"},
+	{A_SharpSpin,              "A_SHARPSPIN"},
+	{A_SharpDecel,             "A_SHARPDECEL"},
+	{A_CrushstaceanWalk,       "A_CRUSHSTACEANWALK"},
+	{A_CrushstaceanPunch,      "A_CRUSHSTACEANPUNCH"},
+	{A_CrushclawAim,           "A_CRUSHCLAWAIM"},
+	{A_CrushclawLaunch,        "A_CRUSHCLAWLAUNCH"},
+	{A_VultureVtol,            "A_VULTUREVTOL"},
+	{A_VultureCheck,           "A_VULTURECHECK"},
+	{A_VultureHover,           "A_VULTUREHOVER"},
+	{A_VultureBlast,           "A_VULTUREBLAST"},
+	{A_VultureFly,             "A_VULTUREFLY"},
+	{A_SkimChase,              "A_SKIMCHASE"},
+	{A_1upThinker,             "A_1UPTHINKER"},
+	{A_SkullAttack,            "A_SKULLATTACK"},
+	{A_LobShot,                "A_LOBSHOT"},
+	{A_FireShot,               "A_FIRESHOT"},
+	{A_SuperFireShot,          "A_SUPERFIRESHOT"},
+	{A_BossFireShot,           "A_BOSSFIRESHOT"},
+	{A_Boss7FireMissiles,      "A_BOSS7FIREMISSILES"},
+	{A_Boss1Laser,             "A_BOSS1LASER"},
+	{A_Boss4Reverse,           "A_BOSS4REVERSE"},
+	{A_Boss4SpeedUp,           "A_BOSS4SPEEDUP"},
+	{A_Boss4Raise,             "A_BOSS4RAISE"},
+	{A_SparkFollow,            "A_SPARKFOLLOW"},
+	{A_BuzzFly,                "A_BUZZFLY"},
+	{A_GuardChase,             "A_GUARDCHASE"},
+	{A_EggShield,              "A_EGGSHIELD"},
+	{A_SetReactionTime,        "A_SETREACTIONTIME"},
+	{A_Boss1Spikeballs,        "A_BOSS1SPIKEBALLS"},
+	{A_Boss3TakeDamage,        "A_BOSS3TAKEDAMAGE"},
+	{A_Boss3Path,              "A_BOSS3PATH"},
+	{A_Boss3ShockThink,        "A_BOSS3SHOCKTHINK"},
+	{A_Shockwave,              "A_SHOCKWAVE"},
+	{A_LinedefExecute,         "A_LINEDEFEXECUTE"},
+	{A_LinedefExecuteFromArg,  "A_LINEDEFEXECUTEFROMARG"},
+	{A_PlaySeeSound,           "A_PLAYSEESOUND"},
+	{A_PlayAttackSound,        "A_PLAYATTACKSOUND"},
+	{A_PlayActiveSound,        "A_PLAYACTIVESOUND"},
+	{A_SpawnObjectAbsolute,    "A_SPAWNOBJECTABSOLUTE"},
+	{A_SpawnObjectRelative,    "A_SPAWNOBJECTRELATIVE"},
+	{A_ChangeAngleRelative,    "A_CHANGEANGLERELATIVE"},
+	{A_ChangeAngleAbsolute,    "A_CHANGEANGLEABSOLUTE"},
+	{A_RollAngle,              "A_ROLLANGLE"},
+	{A_ChangeRollAngleRelative,"A_CHANGEROLLANGLERELATIVE"},
+	{A_ChangeRollAngleAbsolute,"A_CHANGEROLLANGLEABSOLUTE"},
+	{A_PlaySound,              "A_PLAYSOUND"},
+	{A_FindTarget,             "A_FINDTARGET"},
+	{A_FindTracer,             "A_FINDTRACER"},
+	{A_SetTics,                "A_SETTICS"},
+	{A_SetRandomTics,          "A_SETRANDOMTICS"},
+	{A_ChangeColorRelative,    "A_CHANGECOLORRELATIVE"},
+	{A_ChangeColorAbsolute,    "A_CHANGECOLORABSOLUTE"},
+	{A_Dye,                    "A_DYE"},
+	{A_SetTranslation,         "A_SETTRANSLATION"},
+	{A_MoveRelative,           "A_MOVERELATIVE"},
+	{A_MoveAbsolute,           "A_MOVEABSOLUTE"},
+	{A_Thrust,                 "A_THRUST"},
+	{A_ZThrust,                "A_ZTHRUST"},
+	{A_SetTargetsTarget,       "A_SETTARGETSTARGET"},
+	{A_SetObjectFlags,         "A_SETOBJECTFLAGS"},
+	{A_SetObjectFlags2,        "A_SETOBJECTFLAGS2"},
+	{A_RandomState,            "A_RANDOMSTATE"},
+	{A_RandomStateRange,       "A_RANDOMSTATERANGE"},
+	{A_StateRangeByAngle,      "A_STATERANGEBYANGLE"},
+	{A_StateRangeByParameter,  "A_STATERANGEBYPARAMETER"},
+	{A_DualAction,             "A_DUALACTION"},
+	{A_RemoteAction,           "A_REMOTEACTION"},
+	{A_ToggleFlameJet,         "A_TOGGLEFLAMEJET"},
+	{A_OrbitNights,            "A_ORBITNIGHTS"},
+	{A_GhostMe,                "A_GHOSTME"},
+	{A_SetObjectState,         "A_SETOBJECTSTATE"},
+	{A_SetObjectTypeState,     "A_SETOBJECTTYPESTATE"},
+	{A_KnockBack,              "A_KNOCKBACK"},
+	{A_PushAway,               "A_PUSHAWAY"},
+	{A_RingDrain,              "A_RINGDRAIN"},
+	{A_SplitShot,              "A_SPLITSHOT"},
+	{A_MissileSplit,           "A_MISSILESPLIT"},
+	{A_MultiShot,              "A_MULTISHOT"},
+	{A_InstaLoop,              "A_INSTALOOP"},
+	{A_Custom3DRotate,         "A_CUSTOM3DROTATE"},
+	{A_SearchForPlayers,       "A_SEARCHFORPLAYERS"},
+	{A_CheckRandom,            "A_CHECKRANDOM"},
+	{A_CheckTargetRings,       "A_CHECKTARGETRINGS"},
+	{A_CheckRings,             "A_CHECKRINGS"},
+	{A_CheckTotalRings,        "A_CHECKTOTALRINGS"},
+	{A_CheckHealth,            "A_CHECKHEALTH"},
+	{A_CheckRange,             "A_CHECKRANGE"},
+	{A_CheckHeight,            "A_CHECKHEIGHT"},
+	{A_CheckTrueRange,         "A_CHECKTRUERANGE"},
+	{A_CheckThingCount,        "A_CHECKTHINGCOUNT"},
+	{A_CheckAmbush,            "A_CHECKAMBUSH"},
+	{A_CheckCustomValue,       "A_CHECKCUSTOMVALUE"},
+	{A_CheckCusValMemo,        "A_CHECKCUSVALMEMO"},
+	{A_SetCustomValue,         "A_SETCUSTOMVALUE"},
+	{A_UseCusValMemo,          "A_USECUSVALMEMO"},
+	{A_RelayCustomValue,       "A_RELAYCUSTOMVALUE"},
+	{A_CusValAction,           "A_CUSVALACTION"},
+	{A_ForceStop,              "A_FORCESTOP"},
+	{A_ForceWin,               "A_FORCEWIN"},
+	{A_SpikeRetract,           "A_SPIKERETRACT"},
+	{A_InfoState,              "A_INFOSTATE"},
+	{A_Repeat,                 "A_REPEAT"},
+	{A_SetScale,               "A_SETSCALE"},
+	{A_RemoteDamage,           "A_REMOTEDAMAGE"},
+	{A_HomingChase,            "A_HOMINGCHASE"},
+	{A_TrapShot,               "A_TRAPSHOT"},
+	{A_VileTarget,             "A_VILETARGET"},
+	{A_VileAttack,             "A_VILEATTACK"},
+	{A_VileFire,               "A_VILEFIRE"},
+	{A_BrakChase,              "A_BRAKCHASE"},
+	{A_BrakFireShot,           "A_BRAKFIRESHOT"},
+	{A_BrakLobShot,            "A_BRAKLOBSHOT"},
+	{A_NapalmScatter,          "A_NAPALMSCATTER"},
+	{A_SpawnFreshCopy,         "A_SPAWNFRESHCOPY"},
+	{A_FlickySpawn,            "A_FLICKYSPAWN"},
+	{A_FlickyCenter,           "A_FLICKYCENTER"},
+	{A_FlickyAim,              "A_FLICKYAIM"},
+	{A_FlickyFly,              "A_FLICKYFLY"},
+	{A_FlickySoar,             "A_FLICKYSOAR"},
+	{A_FlickyCoast,            "A_FLICKYCOAST"},
+	{A_FlickyHop,              "A_FLICKYHOP"},
+	{A_FlickyFlounder,         "A_FLICKYFLOUNDER"},
+	{A_FlickyCheck,            "A_FLICKYCHECK"},
+	{A_FlickyHeightCheck,      "A_FLICKYHEIGHTCHECK"},
+	{A_FlickyFlutter,          "A_FLICKYFLUTTER"},
+	{A_FlameParticle,          "A_FLAMEPARTICLE"},
+	{A_FadeOverlay,            "A_FADEOVERLAY"},
+	{A_Boss5Jump,              "A_BOSS5JUMP"},
+	{A_LightBeamReset,         "A_LIGHTBEAMRESET"},
+	{A_MineExplode,            "A_MINEEXPLODE"},
+	{A_MineRange,              "A_MINERANGE"},
+	{A_ConnectToGround,        "A_CONNECTTOGROUND"},
+	{A_SpawnParticleRelative,  "A_SPAWNPARTICLERELATIVE"},
+	{A_MultiShotDist,          "A_MULTISHOTDIST"},
+	{A_WhoCaresIfYourSonIsABee,"A_WHOCARESIFYOURSONISABEE"},
+	{A_ParentTriesToSleep,     "A_PARENTTRIESTOSLEEP"},
+	{A_CryingToMomma,          "A_CRYINGTOMOMMA"},
+	{A_CheckFlags2,            "A_CHECKFLAGS2"},
+	{A_Boss5FindWaypoint,      "A_BOSS5FINDWAYPOINT"},
+	{A_DoNPCSkid,              "A_DONPCSKID"},
+	{A_DoNPCPain,              "A_DONPCPAIN"},
+	{A_PrepareRepeat,          "A_PREPAREREPEAT"},
+	{A_Boss5ExtraRepeat,       "A_BOSS5EXTRAREPEAT"},
+	{A_Boss5Calm,              "A_BOSS5CALM"},
+	{A_Boss5CheckOnGround,     "A_BOSS5CHECKONGROUND"},
+	{A_Boss5CheckFalling,      "A_BOSS5CHECKFALLING"},
+	{A_Boss5PinchShot,         "A_BOSS5PINCHSHOT"},
+	{A_Boss5MakeItRain,        "A_BOSS5MAKEITRAIN"},
+	{A_Boss5MakeJunk,          "A_BOSS5MAKEJUNK"},
+	{A_LookForBetter,          "A_LOOKFORBETTER"},
+	{A_Boss5BombExplode,       "A_BOSS5BOMBEXPLODE"},
+	{A_DustDevilThink,         "A_DUSTDEVILTHINK"},
+	{A_TNTExplode,             "A_TNTEXPLODE"},
+	{A_DebrisRandom,           "A_DEBRISRANDOM"},
+	{A_TrainCameo,             "A_TRAINCAMEO"},
+	{A_TrainCameo2,            "A_TRAINCAMEO2"},
+	{A_CanarivoreGas,          "A_CANARIVOREGAS"},
+	{A_KillSegments,           "A_KILLSEGMENTS"},
+	{A_SnapperSpawn,           "A_SNAPPERSPAWN"},
+	{A_SnapperThinker,         "A_SNAPPERTHINKER"},
+	{A_SaloonDoorSpawn,        "A_SALOONDOORSPAWN"},
+	{A_MinecartSparkThink,     "A_MINECARTSPARKTHINK"},
+	{A_ModuloToState,          "A_MODULOTOSTATE"},
+	{A_LavafallRocks,          "A_LAVAFALLROCKS"},
+	{A_LavafallLava,           "A_LAVAFALLLAVA"},
+	{A_FallingLavaCheck,       "A_FALLINGLAVACHECK"},
+	{A_FireShrink,             "A_FIRESHRINK"},
+	{A_SpawnPterabytes,        "A_SPAWNPTERABYTES"},
+	{A_PterabyteHover,         "A_PTERABYTEHOVER"},
+	{A_RolloutSpawn,           "A_ROLLOUTSPAWN"},
+	{A_RolloutRock,            "A_ROLLOUTROCK"},
+	{A_DragonbomberSpawn,      "A_DRAGONBOMBERSPAWN"},
+	{A_DragonWing,             "A_DRAGONWING"},
+	{A_DragonSegment,          "A_DRAGONSEGMENT"},
+	{A_ChangeHeight,           "A_CHANGEHEIGHT"},
+	{NULL,                     "NONE"},
 
 	// This NULL entry must be the last in the list
-	{{NULL},                   NULL},
+	{NULL,                     NULL},
 };
 
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/src/deh_tables.h b/src/deh_tables.h
index 94af2fa52e..6ff9573014 100644
--- a/src/deh_tables.h
+++ b/src/deh_tables.h
@@ -14,7 +14,7 @@
 #define __DEH_TABLES_H__
 
 #include "doomdef.h" // Constants
-#include "d_think.h" // actionf_t
+#include "d_think.h" // actionf_p1
 #include "info.h" // Mobj, state, sprite, etc constants
 #include "lua_script.h"
 
@@ -44,7 +44,7 @@ struct flickytypes_s {
   */
 typedef struct
 {
-	actionf_t action; ///< Function pointer corresponding to the actual action.
+	actionf_p1 action; ///< Function pointer corresponding to the actual action.
 	const char *name; ///< Name of the action in ALL CAPS.
 } actionpointer_t;
 
diff --git a/src/doomtype.h b/src/doomtype.h
index df97398d46..73bcb41001 100644
--- a/src/doomtype.h
+++ b/src/doomtype.h
@@ -145,24 +145,11 @@ size_t strlcpy(char *dst, const char *src, size_t siz);
 
 /* Boolean type definition */
 
-// Note: C++ bool and C99/C11 _Bool are NOT compatible.
-// Historically, boolean was win32 BOOL on Windows. For equivalence, it's now
-// int32_t. "true" and "false" are only declared for C code; in C++, conversion
-// between "bool" and "int32_t" takes over.
-#ifndef _WIN32
-typedef int32_t boolean;
-#else
-#define boolean BOOL
+#ifndef bool // backwards compat for older GNU
+#include <stdbool.h>
 #endif
 
-#ifndef __cplusplus
-#ifndef _WIN32
-enum {false = 0, true = 1};
-#else
-#define false FALSE
-#define true TRUE
-#endif
-#endif
+#define boolean bool
 
 /* 7.18.2.1  Limits of exact-width integer types */
 
diff --git a/src/f_finale.c b/src/f_finale.c
index 264c18d531..91ddd70d2b 100644
--- a/src/f_finale.c
+++ b/src/f_finale.c
@@ -2416,14 +2416,12 @@ void F_StartTitleScreen(void)
 
 	if (gamestate != GS_TITLESCREEN && gamestate != GS_WAITINGPLAYERS)
 	{
-		ttuser_count =\
-		 ttloaded[0] = ttloaded[1] = ttloaded[2] = ttloaded[3] = ttloaded[4] = ttloaded[5] =\
-		 testttscale = activettscale =\
-		 sonic_blink = sonic_blink_twice = sonic_idle_start = sonic_idle_end =\
-		 tails_blink = tails_blink_twice = tails_idle_start = tails_idle_end =\
-		 knux_blink  = knux_blink_twice  = knux_idle_start  = knux_idle_end  = 0;
-
-		sonic_blinked_already = tails_blinked_already = knux_blinked_already = 1; // don't blink on the first idle cycle
+		ttuser_count = 0; // note: you cannot mix bool with int when setting these values, lines which set booleans use true/false here
+		ttloaded[0] = ttloaded[1] = ttloaded[2] = ttloaded[3] = ttloaded[4] = ttloaded[5] = false;
+		testttscale = activettscale = sonic_idle_start = tails_idle_start = knux_idle_start = sonic_idle_end = tails_idle_end = knux_idle_end = 0;
+		sonic_blink = sonic_blink_twice = tails_blink = tails_blink_twice = knux_blink  = knux_blink_twice = false;
+
+		sonic_blinked_already = tails_blinked_already = knux_blinked_already = true; // don't blink on the first idle cycle
 
 		if (curttmode == TTMODE_ALACROIX)
 			finalecount = -3; // hack so that frames don't advance during the entry wipe
diff --git a/src/hardware/hw_light.c b/src/hardware/hw_light.c
index 9011ff05ec..f993e8e4ad 100644
--- a/src/hardware/hw_light.c
+++ b/src/hardware/hw_light.c
@@ -1429,7 +1429,7 @@ static void HWR_SearchLightsInMobjs(void)
 
 	// search in the list of thinkers
 	for (th = thlist[THINK_MOBJ].next; th != &thlist[THINK_MOBJ]; th = th->next)
-		if (th->function.acp1 != (actionf_p1)P_RemoveThinkerDelayed)
+		if (th->function != (actionf_p1)P_RemoveThinkerDelayed)
 			HWR_AddMobjLights((mobj_t *)th);
 }
 #endif
diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index a5befe112c..a36b3a696b 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -5304,7 +5304,7 @@ static void HWR_SetTransformAiming(FTransform *trans, player_t *player, boolean
 //
 static void HWR_SetShaderState(void)
 {
-	HWD.pfnSetSpecialState(HWD_SET_SHADERS, (INT32)HWR_UseShader());
+	HWD.pfnSetSpecialState(HWD_SET_SHADERS, HWR_UseShader());
 }
 
 static void HWR_SetupView(player_t *player, INT32 viewnumber, float fpov, boolean skybox)
diff --git a/src/info.c b/src/info.c
index 4d3468e10f..ca4eedee7b 100644
--- a/src/info.c
+++ b/src/info.c
@@ -721,3322 +721,3322 @@ state_t states[NUMSTATES] =
 	// (or tr_trans10<<FF_TRANSSHIFT if you want to make it hard on yourself)
 
 	// Keep this comment directly above S_NULL.
-	{SPR_NULL, 0,  1, {NULL}, 0, 0, S_NULL, 0}, // S_NULL
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_UNKNOWN
-	{SPR_NULL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_INVISIBLE
-
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 0, 0, S_NULL, 0}, // S_SPAWNSTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 1, 0, S_NULL, 0}, // S_SEESTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 2, 0, S_NULL, 0}, // S_MELEESTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 3, 0, S_NULL, 0}, // S_MISSILESTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 4, 0, S_NULL, 0}, // S_DEATHSTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 5, 0, S_NULL, 0}, // S_XDEATHSTATE
-	{SPR_UNKN, FF_FULLBRIGHT, -1, {A_InfoState}, 6, 0, S_NULL, 0}, // S_RAISESTATE
+	{SPR_NULL, 0,  1, NULL, 0, 0, S_NULL, 0}, // S_NULL
+	{SPR_UNKN, FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_UNKNOWN
+	{SPR_NULL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_INVISIBLE
+
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 0, 0, S_NULL, 0}, // S_SPAWNSTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 1, 0, S_NULL, 0}, // S_SEESTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 2, 0, S_NULL, 0}, // S_MELEESTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 3, 0, S_NULL, 0}, // S_MISSILESTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 4, 0, S_NULL, 0}, // S_DEATHSTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 5, 0, S_NULL, 0}, // S_XDEATHSTATE
+	{SPR_UNKN, FF_FULLBRIGHT, -1, A_InfoState, 6, 0, S_NULL, 0}, // S_RAISESTATE
 
 	// Thok
-	{SPR_THOK, FF_TRANS50, 8, {NULL}, 0, 0, S_NULL, 0}, // S_THOK
+	{SPR_THOK, FF_TRANS50, 8, NULL, 0, 0, S_NULL, 0}, // S_THOK
 
 	// Player
-	{SPR_PLAY, SPR2_STND|FF_ANIMATE,    105, {NULL}, 0,  7, S_PLAY_WAIT, 0}, // S_PLAY_STND
-	{SPR_PLAY, SPR2_WAIT,                16, {NULL}, 0,  0, S_PLAY_WAIT, 0}, // S_PLAY_WAIT
-	{SPR_PLAY, SPR2_WALK,                 4, {NULL}, 0,  0, S_PLAY_WALK, 0}, // S_PLAY_WALK
-	{SPR_PLAY, SPR2_SKID,                 1, {NULL}, 0,  0, S_PLAY_WALK, 0}, // S_PLAY_SKID
-	{SPR_PLAY, SPR2_RUN ,                 2, {NULL}, 0,  0, S_PLAY_RUN, 0},  // S_PLAY_RUN
-	{SPR_PLAY, SPR2_DASH,                 2, {NULL}, 0,  0, S_PLAY_DASH, 0}, // S_PLAY_DASH
-	{SPR_PLAY, SPR2_PAIN|FF_ANIMATE,    350, {NULL}, 0,  4, S_PLAY_FALL, 0}, // S_PLAY_PAIN
-	{SPR_PLAY, SPR2_STUN|FF_ANIMATE,    350, {NULL}, 0,  4, S_PLAY_FALL, 0}, // S_PLAY_STUN
-	{SPR_PLAY, SPR2_DEAD|FF_ANIMATE,     -1, {NULL}, 0,  4, S_NULL, 0},      // S_PLAY_DEAD
-	{SPR_PLAY, SPR2_DRWN|FF_ANIMATE,     -1, {NULL}, 0,  4, S_NULL, 0},      // S_PLAY_DRWN
-	{SPR_PLAY, SPR2_ROLL,                 1, {NULL}, 0,  0, S_PLAY_ROLL, 0}, // S_PLAY_ROLL
-	{SPR_PLAY, SPR2_GASP|FF_ANIMATE,     14, {NULL}, 0,  4, S_PLAY_WALK, 0}, // S_PLAY_GASP
-	{SPR_PLAY, SPR2_JUMP,                 1, {NULL}, 0,  0, S_PLAY_JUMP, 0}, // S_PLAY_JUMP
-	{SPR_PLAY, SPR2_SPNG,                 2, {NULL}, 0,  0, S_PLAY_SPRING, 0}, // S_PLAY_SPRING
-	{SPR_PLAY, SPR2_FALL,                 2, {NULL}, 0,  0, S_PLAY_FALL, 0}, // S_PLAY_FALL
-	{SPR_PLAY, SPR2_EDGE,                12, {NULL}, 0,  0, S_PLAY_EDGE, 0}, // S_PLAY_EDGE
-	{SPR_PLAY, SPR2_RIDE,                 4, {NULL}, 0,  0, S_PLAY_RIDE, 0}, // S_PLAY_RIDE
+	{SPR_PLAY, SPR2_STND|FF_ANIMATE,    105, NULL, 0,  7, S_PLAY_WAIT, 0}, // S_PLAY_STND
+	{SPR_PLAY, SPR2_WAIT,                16, NULL, 0,  0, S_PLAY_WAIT, 0}, // S_PLAY_WAIT
+	{SPR_PLAY, SPR2_WALK,                 4, NULL, 0,  0, S_PLAY_WALK, 0}, // S_PLAY_WALK
+	{SPR_PLAY, SPR2_SKID,                 1, NULL, 0,  0, S_PLAY_WALK, 0}, // S_PLAY_SKID
+	{SPR_PLAY, SPR2_RUN ,                 2, NULL, 0,  0, S_PLAY_RUN, 0},  // S_PLAY_RUN
+	{SPR_PLAY, SPR2_DASH,                 2, NULL, 0,  0, S_PLAY_DASH, 0}, // S_PLAY_DASH
+	{SPR_PLAY, SPR2_PAIN|FF_ANIMATE,    350, NULL, 0,  4, S_PLAY_FALL, 0}, // S_PLAY_PAIN
+	{SPR_PLAY, SPR2_STUN|FF_ANIMATE,    350, NULL, 0,  4, S_PLAY_FALL, 0}, // S_PLAY_STUN
+	{SPR_PLAY, SPR2_DEAD|FF_ANIMATE,     -1, NULL, 0,  4, S_NULL, 0},      // S_PLAY_DEAD
+	{SPR_PLAY, SPR2_DRWN|FF_ANIMATE,     -1, NULL, 0,  4, S_NULL, 0},      // S_PLAY_DRWN
+	{SPR_PLAY, SPR2_ROLL,                 1, NULL, 0,  0, S_PLAY_ROLL, 0}, // S_PLAY_ROLL
+	{SPR_PLAY, SPR2_GASP|FF_ANIMATE,     14, NULL, 0,  4, S_PLAY_WALK, 0}, // S_PLAY_GASP
+	{SPR_PLAY, SPR2_JUMP,                 1, NULL, 0,  0, S_PLAY_JUMP, 0}, // S_PLAY_JUMP
+	{SPR_PLAY, SPR2_SPNG,                 2, NULL, 0,  0, S_PLAY_SPRING, 0}, // S_PLAY_SPRING
+	{SPR_PLAY, SPR2_FALL,                 2, NULL, 0,  0, S_PLAY_FALL, 0}, // S_PLAY_FALL
+	{SPR_PLAY, SPR2_EDGE,                12, NULL, 0,  0, S_PLAY_EDGE, 0}, // S_PLAY_EDGE
+	{SPR_PLAY, SPR2_RIDE,                 4, NULL, 0,  0, S_PLAY_RIDE, 0}, // S_PLAY_RIDE
 
 	// CA2_SPINDASH
-	{SPR_PLAY, SPR2_SPIN,                 2, {NULL}, 0,  0, S_PLAY_SPINDASH, 0}, // S_PLAY_SPINDASH
+	{SPR_PLAY, SPR2_SPIN,                 2, NULL, 0,  0, S_PLAY_SPINDASH, 0}, // S_PLAY_SPINDASH
 
 	// CA_FLY/CA_SWIM
-	{SPR_PLAY, SPR2_FLY ,                 2, {NULL}, 0,  0, S_PLAY_FLY, 0},  // S_PLAY_FLY
-	{SPR_PLAY, SPR2_SWIM,                 4, {NULL}, 0,  0, S_PLAY_SWIM, 0}, // S_PLAY_SWIM
-	{SPR_PLAY, SPR2_TIRE,                12, {NULL}, 0,  0, S_PLAY_FLY_TIRED, 0}, // S_PLAY_FLY_TIRED
+	{SPR_PLAY, SPR2_FLY ,                 2, NULL, 0,  0, S_PLAY_FLY, 0},  // S_PLAY_FLY
+	{SPR_PLAY, SPR2_SWIM,                 4, NULL, 0,  0, S_PLAY_SWIM, 0}, // S_PLAY_SWIM
+	{SPR_PLAY, SPR2_TIRE,                12, NULL, 0,  0, S_PLAY_FLY_TIRED, 0}, // S_PLAY_FLY_TIRED
 
 	// CA_GLIDEANDCLIMB
-	{SPR_PLAY, SPR2_GLID,                 2, {NULL}, 0,  0, S_PLAY_GLIDE, 0}, // S_PLAY_GLIDE
-	{SPR_PLAY, SPR2_LAND,                 7, {NULL}, 0,  0, S_PLAY_STND, 0},  // S_PLAY_GLIDE_LANDING
-	{SPR_PLAY, SPR2_CLNG|FF_ANIMATE,     -1, {NULL}, 0,  4, S_NULL, 0},       // S_PLAY_CLING
-	{SPR_PLAY, SPR2_CLMB,                 5, {NULL}, 0,  0, S_PLAY_CLIMB, 0}, // S_PLAY_CLIMB
+	{SPR_PLAY, SPR2_GLID,                 2, NULL, 0,  0, S_PLAY_GLIDE, 0}, // S_PLAY_GLIDE
+	{SPR_PLAY, SPR2_LAND,                 7, NULL, 0,  0, S_PLAY_STND, 0},  // S_PLAY_GLIDE_LANDING
+	{SPR_PLAY, SPR2_CLNG|FF_ANIMATE,     -1, NULL, 0,  4, S_NULL, 0},       // S_PLAY_CLING
+	{SPR_PLAY, SPR2_CLMB,                 5, NULL, 0,  0, S_PLAY_CLIMB, 0}, // S_PLAY_CLIMB
 
 	// CA_FLOAT/CA_SLOWFALL
-	{SPR_PLAY, SPR2_FLT ,                 7, {NULL}, 0,  0, S_PLAY_FLOAT, 0}, // S_PLAY_FLOAT
-	{SPR_PLAY, SPR2_FRUN,                 7, {NULL}, 0,  0, S_PLAY_FLOAT_RUN, 0},  // S_PLAY_FLOAT_RUN
+	{SPR_PLAY, SPR2_FLT ,                 7, NULL, 0,  0, S_PLAY_FLOAT, 0}, // S_PLAY_FLOAT
+	{SPR_PLAY, SPR2_FRUN,                 7, NULL, 0,  0, S_PLAY_FLOAT_RUN, 0},  // S_PLAY_FLOAT_RUN
 
 	// CA_BOUNCE
-	{SPR_PLAY, SPR2_BNCE|FF_ANIMATE,     -1, {NULL},             0,  0, S_NULL, 0},                // S_PLAY_BOUNCE
-	{SPR_PLAY, SPR2_LAND|FF_SPR2ENDSTATE, 2, {NULL}, S_PLAY_BOUNCE,  0, S_PLAY_BOUNCE_LANDING, 0}, // S_PLAY_BOUNCE_LANDING
+	{SPR_PLAY, SPR2_BNCE|FF_ANIMATE,     -1, NULL,             0,  0, S_NULL, 0},                // S_PLAY_BOUNCE
+	{SPR_PLAY, SPR2_LAND|FF_SPR2ENDSTATE, 2, NULL, S_PLAY_BOUNCE,  0, S_PLAY_BOUNCE_LANDING, 0}, // S_PLAY_BOUNCE_LANDING
 
 	// CA2_GUNSLINGER
-	{SPR_PLAY, SPR2_FIRE|FF_SPR2ENDSTATE,  2, {NULL}, S_PLAY_FIRE_FINISH, 0, S_PLAY_FIRE, 0},   // S_PLAY_FIRE
-	{SPR_PLAY, SPR2_FIRE,                 15, {NULL},        S_PLAY_STND, 0, S_PLAY_STND, 0},   // S_PLAY_FIRE_FINISH
+	{SPR_PLAY, SPR2_FIRE|FF_SPR2ENDSTATE,  2, NULL, S_PLAY_FIRE_FINISH, 0, S_PLAY_FIRE, 0},   // S_PLAY_FIRE
+	{SPR_PLAY, SPR2_FIRE,                 15, NULL,        S_PLAY_STND, 0, S_PLAY_STND, 0},   // S_PLAY_FIRE_FINISH
 
 	// CA_TWINSPIN
-	{SPR_PLAY, SPR2_TWIN|FF_SPR2ENDSTATE, 2, {NULL}, S_PLAY_JUMP, 0, S_PLAY_TWINSPIN, 0}, // S_PLAY_TWINSPIN
+	{SPR_PLAY, SPR2_TWIN|FF_SPR2ENDSTATE, 2, NULL, S_PLAY_JUMP, 0, S_PLAY_TWINSPIN, 0}, // S_PLAY_TWINSPIN
 
 	// CA2_MELEE
-	{SPR_PLAY, SPR2_MLEE|FF_SPR2ENDSTATE, 2, {NULL}, S_PLAY_MELEE_FINISH, 0, S_PLAY_MELEE, 0}, // S_PLAY_MELEE
-	{SPR_PLAY, SPR2_MLEE,                70, {NULL},                   0, 0, S_PLAY_FALL, 0},  // S_PLAY_MELEE_FINISH
-	{SPR_PLAY, SPR2_MLEL,                35, {NULL},                   0, 0, S_PLAY_WALK, 0},  // S_PLAY_MELEE_LANDING
+	{SPR_PLAY, SPR2_MLEE|FF_SPR2ENDSTATE, 2, NULL, S_PLAY_MELEE_FINISH, 0, S_PLAY_MELEE, 0}, // S_PLAY_MELEE
+	{SPR_PLAY, SPR2_MLEE,                70, NULL,                   0, 0, S_PLAY_FALL, 0},  // S_PLAY_MELEE_FINISH
+	{SPR_PLAY, SPR2_MLEL,                35, NULL,                   0, 0, S_PLAY_WALK, 0},  // S_PLAY_MELEE_LANDING
 
 	// SF_SUPER
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_ANIMATE,     7, {NULL},          0, 4, S_PLAY_SUPER_TRANS2, 0}, // S_PLAY_SUPER_TRANS1
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER,                3, {NULL},          0, 0, S_PLAY_SUPER_TRANS3, 0}, // S_PLAY_SUPER_TRANS2
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_SUPER_TRANS4, 0}, // S_PLAY_SUPER_TRANS3
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_SUPER_TRANS5, 0}, // S_PLAY_SUPER_TRANS4
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_SUPER_TRANS6, 0}, // S_PLAY_SUPER_TRANS5
-	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT, 19, {A_FadeOverlay}, 0, 0, S_PLAY_FALL, 0},         // S_PLAY_SUPER_TRANS6
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_ANIMATE,     7, NULL,          0, 4, S_PLAY_SUPER_TRANS2, 0}, // S_PLAY_SUPER_TRANS1
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER,                3, NULL,          0, 0, S_PLAY_SUPER_TRANS3, 0}, // S_PLAY_SUPER_TRANS2
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_SUPER_TRANS4, 0}, // S_PLAY_SUPER_TRANS3
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_SUPER_TRANS5, 0}, // S_PLAY_SUPER_TRANS4
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_SUPER_TRANS6, 0}, // S_PLAY_SUPER_TRANS5
+	{SPR_PLAY, SPR2_TRNS|SPR2F_SUPER|FF_FULLBRIGHT, 19, A_FadeOverlay, 0, 0, S_PLAY_FALL, 0},         // S_PLAY_SUPER_TRANS6
 
-	{SPR_NULL, 0, -1, {NULL}, 0, 0, S_OBJPLACE_DUMMY, 0}, //S_OBJPLACE_DUMMY
+	{SPR_NULL, 0, -1, NULL, 0, 0, S_OBJPLACE_DUMMY, 0}, //S_OBJPLACE_DUMMY
 
 	// 1-Up box sprites (uses player sprite)
-	{SPR_PLAY, SPR2_LIFE,  2, {NULL}, 0, 18, S_PLAY_BOX2, 0},  // S_PLAY_BOX1
-	{SPR_NULL,         0,  1, {NULL}, 0, 18, S_PLAY_BOX1, 0},  // S_PLAY_BOX2
-	{SPR_PLAY, SPR2_LIFE,  4, {NULL}, 0,  4, S_PLAY_ICON2, 0}, // S_PLAY_ICON1
-	{SPR_NULL,         0, 12, {NULL}, 0,  4, S_PLAY_ICON3, 0}, // S_PLAY_ICON2
-	{SPR_PLAY, SPR2_LIFE, 20, {NULL}, 0,  4, S_NULL, 0},       // S_PLAY_ICON3
+	{SPR_PLAY, SPR2_LIFE,  2, NULL, 0, 18, S_PLAY_BOX2, 0},  // S_PLAY_BOX1
+	{SPR_NULL,         0,  1, NULL, 0, 18, S_PLAY_BOX1, 0},  // S_PLAY_BOX2
+	{SPR_PLAY, SPR2_LIFE,  4, NULL, 0,  4, S_PLAY_ICON2, 0}, // S_PLAY_ICON1
+	{SPR_NULL,         0, 12, NULL, 0,  4, S_PLAY_ICON3, 0}, // S_PLAY_ICON2
+	{SPR_PLAY, SPR2_LIFE, 20, NULL, 0,  4, S_NULL, 0},       // S_PLAY_ICON3
 
 	// Level end sign (uses player sprite)
-	{SPR_PLAY, SPR2_SIGN|FF_PAPERSPRITE, 2, {NULL}, 0, 29, S_PLAY_SIGN, 0},         // S_PLAY_SIGN
+	{SPR_PLAY, SPR2_SIGN|FF_PAPERSPRITE, 2, NULL, 0, 29, S_PLAY_SIGN, 0},         // S_PLAY_SIGN
 
 	// NiGHTS Player, transforming
-	{SPR_PLAY, SPR2_TRNS|FF_ANIMATE,     7, {NULL},          0, 4, S_PLAY_NIGHTS_TRANS2, 0}, // S_PLAY_NIGHTS_TRANS1
-	{SPR_PLAY, SPR2_TRNS,                3, {NULL},          0, 0, S_PLAY_NIGHTS_TRANS3, 0}, // S_PLAY_NIGHTS_TRANS2
-	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_NIGHTS_TRANS4, 0}, // S_PLAY_NIGHTS_TRANS3
-	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_NIGHTS_TRANS5, 0}, // S_PLAY_NIGHTS_TRANS4
-	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, {NULL},          0, 0, S_PLAY_NIGHTS_TRANS6, 0}, // S_PLAY_NIGHTS_TRANS5
-	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT, 21, {A_FadeOverlay}, 2, 0, S_PLAY_NIGHTS_FLOAT, 0},  // S_PLAY_NIGHTS_TRANS5
+	{SPR_PLAY, SPR2_TRNS|FF_ANIMATE,     7, NULL,          0, 4, S_PLAY_NIGHTS_TRANS2, 0}, // S_PLAY_NIGHTS_TRANS1
+	{SPR_PLAY, SPR2_TRNS,                3, NULL,          0, 0, S_PLAY_NIGHTS_TRANS3, 0}, // S_PLAY_NIGHTS_TRANS2
+	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_NIGHTS_TRANS4, 0}, // S_PLAY_NIGHTS_TRANS3
+	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_NIGHTS_TRANS5, 0}, // S_PLAY_NIGHTS_TRANS4
+	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT,  2, NULL,          0, 0, S_PLAY_NIGHTS_TRANS6, 0}, // S_PLAY_NIGHTS_TRANS5
+	{SPR_PLAY, SPR2_TRNS|FF_FULLBRIGHT, 21, A_FadeOverlay, 2, 0, S_PLAY_NIGHTS_FLOAT, 0},  // S_PLAY_NIGHTS_TRANS5
 
 	// NiGHTS Player
-	{SPR_PLAY, SPR2_NSTD, 7, {NULL}, 0, 0, S_PLAY_NIGHTS_STAND, 0},  // S_PLAY_NIGHTS_STAND
-	{SPR_PLAY, SPR2_NFLT, 7, {NULL}, 0, 0, S_PLAY_NIGHTS_FLOAT, 0},  // S_PLAY_NIGHTS_FLOAT
-	{SPR_PLAY, SPR2_NFLY, 2, {NULL}, 0, 0, S_PLAY_NIGHTS_FLY, 0},    // S_PLAY_NIGHTS_FLY
-	{SPR_PLAY, SPR2_NDRL, 2, {NULL}, 0, 0, S_PLAY_NIGHTS_DRILL, 0},  // S_PLAY_NIGHTS_DRILL
-	{SPR_PLAY, SPR2_NSTN, 2, {NULL}, 0, 0, S_PLAY_NIGHTS_STUN, 0},   // S_PLAY_NIGHTS_STUN
-	{SPR_PLAY, SPR2_NPUL, 1, {NULL}, 0, 0, S_PLAY_NIGHTS_PULL, 0},   // S_PLAY_NIGHTS_PULL
-	{SPR_PLAY, SPR2_NATK, 1, {NULL}, 0, 0, S_PLAY_NIGHTS_ATTACK, 0}, // S_PLAY_NIGHTS_ATTACK
+	{SPR_PLAY, SPR2_NSTD, 7, NULL, 0, 0, S_PLAY_NIGHTS_STAND, 0},  // S_PLAY_NIGHTS_STAND
+	{SPR_PLAY, SPR2_NFLT, 7, NULL, 0, 0, S_PLAY_NIGHTS_FLOAT, 0},  // S_PLAY_NIGHTS_FLOAT
+	{SPR_PLAY, SPR2_NFLY, 2, NULL, 0, 0, S_PLAY_NIGHTS_FLY, 0},    // S_PLAY_NIGHTS_FLY
+	{SPR_PLAY, SPR2_NDRL, 2, NULL, 0, 0, S_PLAY_NIGHTS_DRILL, 0},  // S_PLAY_NIGHTS_DRILL
+	{SPR_PLAY, SPR2_NSTN, 2, NULL, 0, 0, S_PLAY_NIGHTS_STUN, 0},   // S_PLAY_NIGHTS_STUN
+	{SPR_PLAY, SPR2_NPUL, 1, NULL, 0, 0, S_PLAY_NIGHTS_PULL, 0},   // S_PLAY_NIGHTS_PULL
+	{SPR_PLAY, SPR2_NATK, 1, NULL, 0, 0, S_PLAY_NIGHTS_ATTACK, 0}, // S_PLAY_NIGHTS_ATTACK
 
 	// c:
-	{SPR_PLAY, SPR2_TAL0|FF_SPR2MIDSTART,  5, {NULL}, 0, 0, S_TAILSOVERLAY_STAND, 0}, // S_TAILSOVERLAY_STAND
-	{SPR_PLAY, SPR2_TAL1|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_0DEGREES, 0}, // S_TAILSOVERLAY_0DEGREES
-	{SPR_PLAY, SPR2_TAL2|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_PLUS30DEGREES, 0}, // S_TAILSOVERLAY_PLUS30DEGREES
-	{SPR_PLAY, SPR2_TAL3|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_PLUS60DEGREES, 0}, // S_TAILSOVERLAY_PLUS60DEGREES
-	{SPR_PLAY, SPR2_TAL4|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_MINUS30DEGREES, 0}, // S_TAILSOVERLAY_MINUS30DEGREES
-	{SPR_PLAY, SPR2_TAL5|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_MINUS60DEGREES, 0}, // S_TAILSOVERLAY_MINUS60DEGREES
-	{SPR_PLAY, SPR2_TAL6|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_RUN, 0}, // S_TAILSOVERLAY_RUN
-	{SPR_PLAY, SPR2_TAL7|FF_SPR2MIDSTART,  4, {NULL}, 0, 0, S_TAILSOVERLAY_FLY, 0}, // S_TAILSOVERLAY_FLY
-	{SPR_PLAY, SPR2_TAL8|FF_SPR2MIDSTART,  4, {NULL}, 0, 0, S_TAILSOVERLAY_TIRE, 0}, // S_TAILSOVERLAY_TIRE
-	{SPR_PLAY, SPR2_TAL9|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_PAIN, 0}, // S_TAILSOVERLAY_PAIN
-	{SPR_PLAY, SPR2_TALA|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_GASP, 0}, // S_TAILSOVERLAY_GASP
-	{SPR_PLAY, SPR2_TALB                , 35, {NULL}, 0, 0, S_TAILSOVERLAY_EDGE, 0}, // S_TAILSOVERLAY_EDGE
-	{SPR_PLAY, SPR2_TALC|FF_SPR2MIDSTART, 35, {NULL}, 0, 0, S_TAILSOVERLAY_DASH, 0}, // S_TAILSOVERLAY_DASH
+	{SPR_PLAY, SPR2_TAL0|FF_SPR2MIDSTART,  5, NULL, 0, 0, S_TAILSOVERLAY_STAND, 0}, // S_TAILSOVERLAY_STAND
+	{SPR_PLAY, SPR2_TAL1|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_0DEGREES, 0}, // S_TAILSOVERLAY_0DEGREES
+	{SPR_PLAY, SPR2_TAL2|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_PLUS30DEGREES, 0}, // S_TAILSOVERLAY_PLUS30DEGREES
+	{SPR_PLAY, SPR2_TAL3|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_PLUS60DEGREES, 0}, // S_TAILSOVERLAY_PLUS60DEGREES
+	{SPR_PLAY, SPR2_TAL4|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_MINUS30DEGREES, 0}, // S_TAILSOVERLAY_MINUS30DEGREES
+	{SPR_PLAY, SPR2_TAL5|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_MINUS60DEGREES, 0}, // S_TAILSOVERLAY_MINUS60DEGREES
+	{SPR_PLAY, SPR2_TAL6|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_RUN, 0}, // S_TAILSOVERLAY_RUN
+	{SPR_PLAY, SPR2_TAL7|FF_SPR2MIDSTART,  4, NULL, 0, 0, S_TAILSOVERLAY_FLY, 0}, // S_TAILSOVERLAY_FLY
+	{SPR_PLAY, SPR2_TAL8|FF_SPR2MIDSTART,  4, NULL, 0, 0, S_TAILSOVERLAY_TIRE, 0}, // S_TAILSOVERLAY_TIRE
+	{SPR_PLAY, SPR2_TAL9|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_PAIN, 0}, // S_TAILSOVERLAY_PAIN
+	{SPR_PLAY, SPR2_TALA|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_GASP, 0}, // S_TAILSOVERLAY_GASP
+	{SPR_PLAY, SPR2_TALB                , 35, NULL, 0, 0, S_TAILSOVERLAY_EDGE, 0}, // S_TAILSOVERLAY_EDGE
+	{SPR_PLAY, SPR2_TALC|FF_SPR2MIDSTART, 35, NULL, 0, 0, S_TAILSOVERLAY_DASH, 0}, // S_TAILSOVERLAY_DASH
 
 	// [:
-	{SPR_JETF, 3|FF_ANIMATE|FF_FULLBRIGHT, 2, {NULL}, 1, 1, S_JETFUME1, 0}, // S_JETFUMEFLASH
+	{SPR_JETF, 3|FF_ANIMATE|FF_FULLBRIGHT, 2, NULL, 1, 1, S_JETFUME1, 0}, // S_JETFUMEFLASH
 
 	// Blue Crawla
-	{SPR_POSS, 0, 5, {A_Look}, 0, 0, S_POSS_STND, 0},   // S_POSS_STND
-	{SPR_POSS, 0, 3, {A_Chase}, 0, 0, S_POSS_RUN2, 0},   // S_POSS_RUN1
-	{SPR_POSS, 1, 3, {A_Chase}, 0, 0, S_POSS_RUN3, 0},   // S_POSS_RUN2
-	{SPR_POSS, 2, 3, {A_Chase}, 0, 0, S_POSS_RUN4, 0},   // S_POSS_RUN3
-	{SPR_POSS, 3, 3, {A_Chase}, 0, 0, S_POSS_RUN5, 0},   // S_POSS_RUN4
-	{SPR_POSS, 4, 3, {A_Chase}, 0, 0, S_POSS_RUN6, 0},   // S_POSS_RUN5
-	{SPR_POSS, 5, 3, {A_Chase}, 0, 0, S_POSS_RUN1, 0},   // S_POSS_RUN6
+	{SPR_POSS, 0, 5, A_Look, 0, 0, S_POSS_STND, 0},   // S_POSS_STND
+	{SPR_POSS, 0, 3, A_Chase, 0, 0, S_POSS_RUN2, 0},   // S_POSS_RUN1
+	{SPR_POSS, 1, 3, A_Chase, 0, 0, S_POSS_RUN3, 0},   // S_POSS_RUN2
+	{SPR_POSS, 2, 3, A_Chase, 0, 0, S_POSS_RUN4, 0},   // S_POSS_RUN3
+	{SPR_POSS, 3, 3, A_Chase, 0, 0, S_POSS_RUN5, 0},   // S_POSS_RUN4
+	{SPR_POSS, 4, 3, A_Chase, 0, 0, S_POSS_RUN6, 0},   // S_POSS_RUN5
+	{SPR_POSS, 5, 3, A_Chase, 0, 0, S_POSS_RUN1, 0},   // S_POSS_RUN6
 
 	// Red Crawla
-	{SPR_SPOS, 0, 5, {A_Look}, 0, 0, S_SPOS_STND, 0},   // S_SPOS_STND
-	{SPR_SPOS, 0, 1, {A_Chase}, 0, 0, S_SPOS_RUN2, 0},   // S_SPOS_RUN1
-	{SPR_SPOS, 1, 1, {A_Chase}, 0, 0, S_SPOS_RUN3, 0},   // S_SPOS_RUN2
-	{SPR_SPOS, 2, 1, {A_Chase}, 0, 0, S_SPOS_RUN4, 0},   // S_SPOS_RUN3
-	{SPR_SPOS, 3, 1, {A_Chase}, 0, 0, S_SPOS_RUN5, 0},   // S_SPOS_RUN4
-	{SPR_SPOS, 4, 1, {A_Chase}, 0, 0, S_SPOS_RUN6, 0},   // S_SPOS_RUN5
-	{SPR_SPOS, 5, 1, {A_Chase}, 0, 0, S_SPOS_RUN1, 0},   // S_SPOS_RUN6
+	{SPR_SPOS, 0, 5, A_Look, 0, 0, S_SPOS_STND, 0},   // S_SPOS_STND
+	{SPR_SPOS, 0, 1, A_Chase, 0, 0, S_SPOS_RUN2, 0},   // S_SPOS_RUN1
+	{SPR_SPOS, 1, 1, A_Chase, 0, 0, S_SPOS_RUN3, 0},   // S_SPOS_RUN2
+	{SPR_SPOS, 2, 1, A_Chase, 0, 0, S_SPOS_RUN4, 0},   // S_SPOS_RUN3
+	{SPR_SPOS, 3, 1, A_Chase, 0, 0, S_SPOS_RUN5, 0},   // S_SPOS_RUN4
+	{SPR_SPOS, 4, 1, A_Chase, 0, 0, S_SPOS_RUN6, 0},   // S_SPOS_RUN5
+	{SPR_SPOS, 5, 1, A_Chase, 0, 0, S_SPOS_RUN1, 0},   // S_SPOS_RUN6
 
 	// Greenflower Fish
-	{SPR_FISH, 1, 1, {NULL}, 0, 0, S_FISH2, 0},         // S_FISH1
-	{SPR_FISH, 1, 1, {A_FishJump}, 0, 0, S_FISH1, 0},   // S_FISH2
-	{SPR_FISH, 0, 1, {NULL}, 0, 0, S_FISH4, 0},         // S_FISH3
-	{SPR_FISH, 0, 1, {A_FishJump}, 0, 0, S_FISH3, 0},   // S_FISH4
+	{SPR_FISH, 1, 1, NULL, 0, 0, S_FISH2, 0},         // S_FISH1
+	{SPR_FISH, 1, 1, A_FishJump, 0, 0, S_FISH1, 0},   // S_FISH2
+	{SPR_FISH, 0, 1, NULL, 0, 0, S_FISH4, 0},         // S_FISH3
+	{SPR_FISH, 0, 1, A_FishJump, 0, 0, S_FISH3, 0},   // S_FISH4
 
 	// Gold Buzz
-	{SPR_BUZZ, 0, 2, {A_Look}, 0, 0, S_BUZZLOOK2, 0},   // S_BUZZLOOK1
-	{SPR_BUZZ, 1, 2, {A_Look}, 0, 0, S_BUZZLOOK1, 0},   // S_BUZZLOOK2
-	{SPR_BUZZ, 0, 2, {A_BuzzFly}, sfx_buzz4, 0, S_BUZZFLY2, 0}, // S_BUZZFLY1
-	{SPR_BUZZ, 1, 2, {A_BuzzFly}, 0, 0, S_BUZZFLY1, 0}, // S_BUZZFLY2
+	{SPR_BUZZ, 0, 2, A_Look, 0, 0, S_BUZZLOOK2, 0},   // S_BUZZLOOK1
+	{SPR_BUZZ, 1, 2, A_Look, 0, 0, S_BUZZLOOK1, 0},   // S_BUZZLOOK2
+	{SPR_BUZZ, 0, 2, A_BuzzFly, sfx_buzz4, 0, S_BUZZFLY2, 0}, // S_BUZZFLY1
+	{SPR_BUZZ, 1, 2, A_BuzzFly, 0, 0, S_BUZZFLY1, 0}, // S_BUZZFLY2
 
 	// Red Buzz
-	{SPR_RBUZ, 0, 2, {A_Look}, 0, 0, S_RBUZZLOOK2, 0},   // S_RBUZZLOOK1
-	{SPR_RBUZ, 1, 2, {A_Look}, 0, 0, S_RBUZZLOOK1, 0},   // S_RBUZZLOOK2
-	{SPR_RBUZ, 0, 2, {A_BuzzFly}, sfx_buzz4, 0, S_RBUZZFLY2, 0}, // S_RBUZZFLY1
-	{SPR_RBUZ, 1, 2, {A_BuzzFly}, 0, 0, S_RBUZZFLY1, 0}, // S_RBUZZFLY2
+	{SPR_RBUZ, 0, 2, A_Look, 0, 0, S_RBUZZLOOK2, 0},   // S_RBUZZLOOK1
+	{SPR_RBUZ, 1, 2, A_Look, 0, 0, S_RBUZZLOOK1, 0},   // S_RBUZZLOOK2
+	{SPR_RBUZ, 0, 2, A_BuzzFly, sfx_buzz4, 0, S_RBUZZFLY2, 0}, // S_RBUZZFLY1
+	{SPR_RBUZ, 1, 2, A_BuzzFly, 0, 0, S_RBUZZFLY1, 0}, // S_RBUZZFLY2
 
 	// Jetty-Syn Bomber
-	{SPR_JETB, 0, 4, {A_Look}, 0, 0, S_JETBLOOK2, 0},      // S_JETBLOOK1
-	{SPR_JETB, 1, 4, {A_Look}, 0, 0, S_JETBLOOK1, 0},      // S_JETBLOOK2
-	{SPR_JETB, 0, 1, {A_JetbThink}, 0, 0, S_JETBZOOM2, 0}, // S_JETBZOOM1
-	{SPR_JETB, 1, 1, {A_JetbThink}, 0, 0, S_JETBZOOM1, 0}, // S_JETBZOOM2
+	{SPR_JETB, 0, 4, A_Look, 0, 0, S_JETBLOOK2, 0},      // S_JETBLOOK1
+	{SPR_JETB, 1, 4, A_Look, 0, 0, S_JETBLOOK1, 0},      // S_JETBLOOK2
+	{SPR_JETB, 0, 1, A_JetbThink, 0, 0, S_JETBZOOM2, 0}, // S_JETBZOOM1
+	{SPR_JETB, 1, 1, A_JetbThink, 0, 0, S_JETBZOOM1, 0}, // S_JETBZOOM2
 
 	// Jetty-Syn Gunner
-	{SPR_JETG, 0, 4, {A_Look}, 0, 0, S_JETGLOOK2, 0},       // S_JETGLOOK1
-	{SPR_JETG, 1, 4, {A_Look}, 0, 0, S_JETGLOOK1, 0},       // S_JETGLOOK2
-	{SPR_JETG, 0, 1, {A_JetgThink}, 0, 0, S_JETGZOOM2, 0},  // S_JETGZOOM1
-	{SPR_JETG, 1, 1, {A_JetgThink}, 0, 0, S_JETGZOOM1, 0},  // S_JETGZOOM2
-	{SPR_JETG, 2, 1, {A_JetgShoot}, 0, 0, S_JETGSHOOT2, 0}, // S_JETGSHOOT1
-	{SPR_JETG, 3, 1, {NULL}, 0, 0, S_JETGZOOM1, 0},         // S_JETGSHOOT2
+	{SPR_JETG, 0, 4, A_Look, 0, 0, S_JETGLOOK2, 0},       // S_JETGLOOK1
+	{SPR_JETG, 1, 4, A_Look, 0, 0, S_JETGLOOK1, 0},       // S_JETGLOOK2
+	{SPR_JETG, 0, 1, A_JetgThink, 0, 0, S_JETGZOOM2, 0},  // S_JETGZOOM1
+	{SPR_JETG, 1, 1, A_JetgThink, 0, 0, S_JETGZOOM1, 0},  // S_JETGZOOM2
+	{SPR_JETG, 2, 1, A_JetgShoot, 0, 0, S_JETGSHOOT2, 0}, // S_JETGSHOOT1
+	{SPR_JETG, 3, 1, NULL, 0, 0, S_JETGZOOM1, 0},         // S_JETGSHOOT2
 
 	// Crawla Commander
-	{SPR_CCOM, 0, 1, {A_CrawlaCommanderThink}, 0, 15*FRACUNIT, S_CCOMMAND2, 0}, // S_CCOMMAND1
-	{SPR_CCOM, 1, 1, {A_CrawlaCommanderThink}, 0, 15*FRACUNIT, S_CCOMMAND1, 0}, // S_CCOMMAND2
-	{SPR_CCOM, 2, 1, {A_CrawlaCommanderThink}, 0, 15*FRACUNIT, S_CCOMMAND4, 0}, // S_CCOMMAND3
-	{SPR_CCOM, 3, 1, {A_CrawlaCommanderThink}, 0, 15*FRACUNIT, S_CCOMMAND3, 0}, // S_CCOMMAND4
+	{SPR_CCOM, 0, 1, A_CrawlaCommanderThink, 0, 15*FRACUNIT, S_CCOMMAND2, 0}, // S_CCOMMAND1
+	{SPR_CCOM, 1, 1, A_CrawlaCommanderThink, 0, 15*FRACUNIT, S_CCOMMAND1, 0}, // S_CCOMMAND2
+	{SPR_CCOM, 2, 1, A_CrawlaCommanderThink, 0, 15*FRACUNIT, S_CCOMMAND4, 0}, // S_CCOMMAND3
+	{SPR_CCOM, 3, 1, A_CrawlaCommanderThink, 0, 15*FRACUNIT, S_CCOMMAND3, 0}, // S_CCOMMAND4
 
 	// Deton
-	{SPR_DETN, 0, 35, {A_Look}, 0, 0, S_DETON1, 0},       // S_DETON1
-	{SPR_DETN, 0,  1, {A_DetonChase}, 0, 0, S_DETON3, 0},  // S_DETON2
-	{SPR_DETN, 1,  1, {A_DetonChase}, 0, 0, S_DETON4, 0},  // S_DETON3
-	{SPR_DETN, 2,  1, {A_DetonChase}, 0, 0, S_DETON5, 0},  // S_DETON4
-	{SPR_DETN, 3,  1, {A_DetonChase}, 0, 0, S_DETON6, 0},  // S_DETON5
-	{SPR_DETN, 4,  1, {A_DetonChase}, 0, 0, S_DETON7, 0},  // S_DETON6
-	{SPR_DETN, 5,  1, {A_DetonChase}, 0, 0, S_DETON8, 0},  // S_DETON7
-	{SPR_DETN, 6,  1, {A_DetonChase}, 0, 0, S_DETON9, 0},  // S_DETON8
-	{SPR_DETN, 7,  1, {A_DetonChase}, 0, 0, S_DETON10, 0}, // S_DETON9
-	{SPR_DETN, 6,  1, {A_DetonChase}, 0, 0, S_DETON11, 0}, // S_DETON10
-	{SPR_DETN, 5,  1, {A_DetonChase}, 0, 0, S_DETON12, 0}, // S_DETON11
-	{SPR_DETN, 4,  1, {A_DetonChase}, 0, 0, S_DETON13, 0}, // S_DETON12
-	{SPR_DETN, 3,  1, {A_DetonChase}, 0, 0, S_DETON14, 0}, // S_DETON13
-	{SPR_DETN, 2,  1, {A_DetonChase}, 0, 0, S_DETON15, 0}, // S_DETON14
-	{SPR_DETN, 1,  1, {A_DetonChase}, 0, 0, S_DETON2, 0},  // S_DETON15
+	{SPR_DETN, 0, 35, A_Look, 0, 0, S_DETON1, 0},       // S_DETON1
+	{SPR_DETN, 0,  1, A_DetonChase, 0, 0, S_DETON3, 0},  // S_DETON2
+	{SPR_DETN, 1,  1, A_DetonChase, 0, 0, S_DETON4, 0},  // S_DETON3
+	{SPR_DETN, 2,  1, A_DetonChase, 0, 0, S_DETON5, 0},  // S_DETON4
+	{SPR_DETN, 3,  1, A_DetonChase, 0, 0, S_DETON6, 0},  // S_DETON5
+	{SPR_DETN, 4,  1, A_DetonChase, 0, 0, S_DETON7, 0},  // S_DETON6
+	{SPR_DETN, 5,  1, A_DetonChase, 0, 0, S_DETON8, 0},  // S_DETON7
+	{SPR_DETN, 6,  1, A_DetonChase, 0, 0, S_DETON9, 0},  // S_DETON8
+	{SPR_DETN, 7,  1, A_DetonChase, 0, 0, S_DETON10, 0}, // S_DETON9
+	{SPR_DETN, 6,  1, A_DetonChase, 0, 0, S_DETON11, 0}, // S_DETON10
+	{SPR_DETN, 5,  1, A_DetonChase, 0, 0, S_DETON12, 0}, // S_DETON11
+	{SPR_DETN, 4,  1, A_DetonChase, 0, 0, S_DETON13, 0}, // S_DETON12
+	{SPR_DETN, 3,  1, A_DetonChase, 0, 0, S_DETON14, 0}, // S_DETON13
+	{SPR_DETN, 2,  1, A_DetonChase, 0, 0, S_DETON15, 0}, // S_DETON14
+	{SPR_DETN, 1,  1, A_DetonChase, 0, 0, S_DETON2, 0},  // S_DETON15
 
 	// Skim Mine Dropper
-	{SPR_SKIM, 0,  1, {A_SkimChase}, 0, 0, S_SKIM2, 0},    // S_SKIM1
-	{SPR_SKIM, 0,  1, {A_SkimChase}, 0, 0, S_SKIM1, 0},    // S_SKIM2
-	{SPR_SKIM, 0, 14,        {NULL}, 0, 0, S_SKIM4, 0},    // S_SKIM3
-	{SPR_SKIM, 0, 14,  {A_DropMine}, 0, 0, S_SKIM1, 0},    // S_SKIM4
+	{SPR_SKIM, 0,  1, A_SkimChase, 0, 0, S_SKIM2, 0},    // S_SKIM1
+	{SPR_SKIM, 0,  1, A_SkimChase, 0, 0, S_SKIM1, 0},    // S_SKIM2
+	{SPR_SKIM, 0, 14,        NULL, 0, 0, S_SKIM4, 0},    // S_SKIM3
+	{SPR_SKIM, 0, 14,  A_DropMine, 0, 0, S_SKIM1, 0},    // S_SKIM4
 
 	// THZ Turret
-	{SPR_TRET, FF_FULLBRIGHT, 105, {A_TurretStop}, 0, 0, S_TURRETFIRE, 0},   // S_TURRET
-	{SPR_TRET, FF_FULLBRIGHT, 105, {A_TurretFire}, 0, 0, S_TURRET, 0},       // S_TURRETFIRE
-	{SPR_TRET, FF_FULLBRIGHT|1, 7, {A_Pain}, 0, 0, S_TURRETSHOCK2, 0},       // S_TURRETSHOCK1
-	{SPR_TRET, FF_FULLBRIGHT|2, 7, {NULL}, 0, 0, S_TURRETSHOCK3, 0},         // S_TURRETSHOCK2
-	{SPR_TRET, FF_FULLBRIGHT|3, 7, {NULL}, 0, 0, S_TURRETSHOCK4, 0},         // S_TURRETSHOCK3
-	{SPR_TRET, FF_FULLBRIGHT|4, 7, {NULL}, 0, 0, S_TURRETSHOCK5, 0},         // S_TURRETSHOCK4
-	{SPR_TRET, FF_FULLBRIGHT|1, 7, {NULL}, 0, 0, S_TURRETSHOCK6, 0},         // S_TURRETSHOCK5
-	{SPR_TRET, FF_FULLBRIGHT|2, 7, {A_Pain}, 0, 0, S_TURRETSHOCK7, 0},       // S_TURRETSHOCK6
-	{SPR_TRET, FF_FULLBRIGHT|3, 7, {NULL}, 0, 0, S_TURRETSHOCK8, 0},         // S_TURRETSHOCK7
-	{SPR_TRET, FF_FULLBRIGHT|4, 7, {NULL}, 0, 0, S_TURRETSHOCK9, 0},         // S_TURRETSHOCK8
-	{SPR_TRET, FF_FULLBRIGHT|4, 7, {A_LinedefExecuteFromArg}, 0, 0, S_XPLD1, 0}, // S_TURRETSHOCK9
-
-	{SPR_TURR, 0, 1, {A_Look}, 1, 0, S_TURRETPOPDOWN8, 0},          // S_TURRETLOOK
-	{SPR_TURR, 0, 0, {A_FaceTarget}, 0, 0, S_TURRETPOPUP1, 0},  // S_TURRETSEE
-	{SPR_TURR, 1, 2, {A_Pain}, 0, 0, S_TURRETPOPUP2, 0},  // S_TURRETPOPUP1
-	{SPR_TURR, 2, 2, {NULL}, 0, 0, S_TURRETPOPUP3, 0},  // S_TURRETPOPUP2
-	{SPR_TURR, 3, 2, {NULL}, 0, 0, S_TURRETPOPUP4, 0},  // S_TURRETPOPUP3
-	{SPR_TURR, 4, 2, {NULL}, 0, 0, S_TURRETPOPUP5, 0},  // S_TURRETPOPUP4
-	{SPR_TURR, 5, 2, {NULL}, 0, 0, S_TURRETPOPUP6, 0},  // S_TURRETPOPUP5
-	{SPR_TURR, 6, 2, {NULL}, 0, 0, S_TURRETPOPUP7, 0},  // S_TURRETPOPUP6
-	{SPR_TURR, 7, 2, {NULL}, 0, 0, S_TURRETPOPUP8, 0},  // S_TURRETPOPUP7
-	{SPR_TURR, 8, 14,{NULL}, 0, 0, S_TURRETSHOOT, 0},   // S_TURRETPOPUP8
-	{SPR_TURR, 8, 14,{A_JetgShoot}, 0, 0, S_TURRETPOPDOWN1, 0}, // S_TURRETSHOOT
-	{SPR_TURR, 7, 2, {A_Pain}, 0, 0, S_TURRETPOPDOWN2, 0},        // S_TURRETPOPDOWN1
-	{SPR_TURR, 6, 2, {NULL}, 0, 0, S_TURRETPOPDOWN3, 0},        // S_TURRETPOPDOWN2
-	{SPR_TURR, 5, 2, {NULL}, 0, 0, S_TURRETPOPDOWN4, 0},        // S_TURRETPOPDOWN3
-	{SPR_TURR, 4, 2, {NULL}, 0, 0, S_TURRETPOPDOWN5, 0},        // S_TURRETPOPDOWN4
-	{SPR_TURR, 3, 2, {NULL}, 0, 0, S_TURRETPOPDOWN6, 0},        // S_TURRETPOPDOWN5
-	{SPR_TURR, 2, 2, {NULL}, 0, 0, S_TURRETPOPDOWN7, 0},        // S_TURRETPOPDOWN6
-	{SPR_TURR, 1, 2, {NULL}, 0, 0, S_TURRETPOPDOWN8, 0},        // S_TURRETPOPDOWN7
-	{SPR_TURR, 0, 69,{A_SetTics}, 0, 1, S_TURRETLOOK, 0},       // S_TURRETPOPDOWN8
+	{SPR_TRET, FF_FULLBRIGHT, 105, A_TurretStop, 0, 0, S_TURRETFIRE, 0},   // S_TURRET
+	{SPR_TRET, FF_FULLBRIGHT, 105, A_TurretFire, 0, 0, S_TURRET, 0},       // S_TURRETFIRE
+	{SPR_TRET, FF_FULLBRIGHT|1, 7, A_Pain, 0, 0, S_TURRETSHOCK2, 0},       // S_TURRETSHOCK1
+	{SPR_TRET, FF_FULLBRIGHT|2, 7, NULL, 0, 0, S_TURRETSHOCK3, 0},         // S_TURRETSHOCK2
+	{SPR_TRET, FF_FULLBRIGHT|3, 7, NULL, 0, 0, S_TURRETSHOCK4, 0},         // S_TURRETSHOCK3
+	{SPR_TRET, FF_FULLBRIGHT|4, 7, NULL, 0, 0, S_TURRETSHOCK5, 0},         // S_TURRETSHOCK4
+	{SPR_TRET, FF_FULLBRIGHT|1, 7, NULL, 0, 0, S_TURRETSHOCK6, 0},         // S_TURRETSHOCK5
+	{SPR_TRET, FF_FULLBRIGHT|2, 7, A_Pain, 0, 0, S_TURRETSHOCK7, 0},       // S_TURRETSHOCK6
+	{SPR_TRET, FF_FULLBRIGHT|3, 7, NULL, 0, 0, S_TURRETSHOCK8, 0},         // S_TURRETSHOCK7
+	{SPR_TRET, FF_FULLBRIGHT|4, 7, NULL, 0, 0, S_TURRETSHOCK9, 0},         // S_TURRETSHOCK8
+	{SPR_TRET, FF_FULLBRIGHT|4, 7, A_LinedefExecuteFromArg, 0, 0, S_XPLD1, 0}, // S_TURRETSHOCK9
+
+	{SPR_TURR, 0, 1, A_Look, 1, 0, S_TURRETPOPDOWN8, 0},          // S_TURRETLOOK
+	{SPR_TURR, 0, 0, A_FaceTarget, 0, 0, S_TURRETPOPUP1, 0},  // S_TURRETSEE
+	{SPR_TURR, 1, 2, A_Pain, 0, 0, S_TURRETPOPUP2, 0},  // S_TURRETPOPUP1
+	{SPR_TURR, 2, 2, NULL, 0, 0, S_TURRETPOPUP3, 0},  // S_TURRETPOPUP2
+	{SPR_TURR, 3, 2, NULL, 0, 0, S_TURRETPOPUP4, 0},  // S_TURRETPOPUP3
+	{SPR_TURR, 4, 2, NULL, 0, 0, S_TURRETPOPUP5, 0},  // S_TURRETPOPUP4
+	{SPR_TURR, 5, 2, NULL, 0, 0, S_TURRETPOPUP6, 0},  // S_TURRETPOPUP5
+	{SPR_TURR, 6, 2, NULL, 0, 0, S_TURRETPOPUP7, 0},  // S_TURRETPOPUP6
+	{SPR_TURR, 7, 2, NULL, 0, 0, S_TURRETPOPUP8, 0},  // S_TURRETPOPUP7
+	{SPR_TURR, 8, 14,NULL, 0, 0, S_TURRETSHOOT, 0},   // S_TURRETPOPUP8
+	{SPR_TURR, 8, 14,A_JetgShoot, 0, 0, S_TURRETPOPDOWN1, 0}, // S_TURRETSHOOT
+	{SPR_TURR, 7, 2, A_Pain, 0, 0, S_TURRETPOPDOWN2, 0},        // S_TURRETPOPDOWN1
+	{SPR_TURR, 6, 2, NULL, 0, 0, S_TURRETPOPDOWN3, 0},        // S_TURRETPOPDOWN2
+	{SPR_TURR, 5, 2, NULL, 0, 0, S_TURRETPOPDOWN4, 0},        // S_TURRETPOPDOWN3
+	{SPR_TURR, 4, 2, NULL, 0, 0, S_TURRETPOPDOWN5, 0},        // S_TURRETPOPDOWN4
+	{SPR_TURR, 3, 2, NULL, 0, 0, S_TURRETPOPDOWN6, 0},        // S_TURRETPOPDOWN5
+	{SPR_TURR, 2, 2, NULL, 0, 0, S_TURRETPOPDOWN7, 0},        // S_TURRETPOPDOWN6
+	{SPR_TURR, 1, 2, NULL, 0, 0, S_TURRETPOPDOWN8, 0},        // S_TURRETPOPDOWN7
+	{SPR_TURR, 0, 69,A_SetTics, 0, 1, S_TURRETLOOK, 0},       // S_TURRETPOPDOWN8
 
 	// Spincushion
-	{SPR_SHRP, 0,  2, {A_Look},                 0, 0, S_SPINCUSHION_LOOK, 0},   // S_SPINCUSHION_LOOK
-	{SPR_SHRP, 1,  2, {A_SharpChase},           0, 0, S_SPINCUSHION_CHASE2, 0}, // S_SPINCUSHION_CHASE1
-	{SPR_SHRP, 2,  2, {A_SharpChase},           0, 0, S_SPINCUSHION_CHASE3, 0}, // S_SPINCUSHION_CHASE2
-	{SPR_SHRP, 3,  2, {A_SharpChase},           0, 0, S_SPINCUSHION_CHASE4, 0}, // S_SPINCUSHION_CHASE3
-	{SPR_SHRP, 0,  2, {A_SharpChase},           0, 0, S_SPINCUSHION_CHASE1, 0}, // S_SPINCUSHION_CHASE4
-	{SPR_SHRP, 0,  2, {NULL},                   0, 0, S_SPINCUSHION_AIM2, 0},   // S_SPINCUSHION_AIM1
-	{SPR_SHRP, 4,  2, {NULL},                   0, 0, S_SPINCUSHION_AIM3, 0},   // S_SPINCUSHION_AIM2
-	{SPR_SHRP, 5,  2, {A_SetObjectFlags}, MF_PAIN, 2, S_SPINCUSHION_AIM4, 0},   // S_SPINCUSHION_AIM3
-	{SPR_SHRP, 6, 16, {A_MultiShotDist}, (MT_DUST<<16)|6, -32, S_SPINCUSHION_AIM5, 0}, // S_SPINCUSHION_AIM4
-	{SPR_SHRP, 6,  0, {A_PlaySound},   sfx_shrpgo, 1, S_SPINCUSHION_SPIN1, 0},  // S_SPINCUSHION_AIM5
-	{SPR_SHRP, 6,  1, {A_SharpSpin},            0, 0, S_SPINCUSHION_SPIN2, 0},  // S_SPINCUSHION_SPIN1
-	{SPR_SHRP, 8,  1, {A_SharpSpin},            0, 0, S_SPINCUSHION_SPIN3, 0},  // S_SPINCUSHION_SPIN2
-	{SPR_SHRP, 7,  1, {A_SharpSpin},            0, 0, S_SPINCUSHION_SPIN4, 0},  // S_SPINCUSHION_SPIN3
-	{SPR_SHRP, 8,  1, {A_SharpSpin},  MT_SPINDUST, 0, S_SPINCUSHION_SPIN1, 0},  // S_SPINCUSHION_SPIN4
-	{SPR_SHRP, 6,  1, {A_PlaySound},    sfx_s3k69, 1, S_SPINCUSHION_STOP2, 0},  // S_SPINCUSHION_STOP1
-	{SPR_SHRP, 6,  4, {A_SharpDecel},           0, 0, S_SPINCUSHION_STOP2, 0},  // S_SPINCUSHION_STOP2
-	{SPR_SHRP, 5,  4, {A_FaceTarget},           0, 0, S_SPINCUSHION_STOP4, 0},  // S_SPINCUSHION_STOP3
-	{SPR_SHRP, 4,  4, {A_SetObjectFlags}, MF_PAIN, 1, S_SPINCUSHION_LOOK, 0},   // S_SPINCUSHION_STOP4
+	{SPR_SHRP, 0,  2, A_Look,                 0, 0, S_SPINCUSHION_LOOK, 0},   // S_SPINCUSHION_LOOK
+	{SPR_SHRP, 1,  2, A_SharpChase,           0, 0, S_SPINCUSHION_CHASE2, 0}, // S_SPINCUSHION_CHASE1
+	{SPR_SHRP, 2,  2, A_SharpChase,           0, 0, S_SPINCUSHION_CHASE3, 0}, // S_SPINCUSHION_CHASE2
+	{SPR_SHRP, 3,  2, A_SharpChase,           0, 0, S_SPINCUSHION_CHASE4, 0}, // S_SPINCUSHION_CHASE3
+	{SPR_SHRP, 0,  2, A_SharpChase,           0, 0, S_SPINCUSHION_CHASE1, 0}, // S_SPINCUSHION_CHASE4
+	{SPR_SHRP, 0,  2, NULL,                   0, 0, S_SPINCUSHION_AIM2, 0},   // S_SPINCUSHION_AIM1
+	{SPR_SHRP, 4,  2, NULL,                   0, 0, S_SPINCUSHION_AIM3, 0},   // S_SPINCUSHION_AIM2
+	{SPR_SHRP, 5,  2, A_SetObjectFlags, MF_PAIN, 2, S_SPINCUSHION_AIM4, 0},   // S_SPINCUSHION_AIM3
+	{SPR_SHRP, 6, 16, A_MultiShotDist, (MT_DUST<<16)|6, -32, S_SPINCUSHION_AIM5, 0}, // S_SPINCUSHION_AIM4
+	{SPR_SHRP, 6,  0, A_PlaySound,   sfx_shrpgo, 1, S_SPINCUSHION_SPIN1, 0},  // S_SPINCUSHION_AIM5
+	{SPR_SHRP, 6,  1, A_SharpSpin,            0, 0, S_SPINCUSHION_SPIN2, 0},  // S_SPINCUSHION_SPIN1
+	{SPR_SHRP, 8,  1, A_SharpSpin,            0, 0, S_SPINCUSHION_SPIN3, 0},  // S_SPINCUSHION_SPIN2
+	{SPR_SHRP, 7,  1, A_SharpSpin,            0, 0, S_SPINCUSHION_SPIN4, 0},  // S_SPINCUSHION_SPIN3
+	{SPR_SHRP, 8,  1, A_SharpSpin,  MT_SPINDUST, 0, S_SPINCUSHION_SPIN1, 0},  // S_SPINCUSHION_SPIN4
+	{SPR_SHRP, 6,  1, A_PlaySound,    sfx_s3k69, 1, S_SPINCUSHION_STOP2, 0},  // S_SPINCUSHION_STOP1
+	{SPR_SHRP, 6,  4, A_SharpDecel,           0, 0, S_SPINCUSHION_STOP2, 0},  // S_SPINCUSHION_STOP2
+	{SPR_SHRP, 5,  4, A_FaceTarget,           0, 0, S_SPINCUSHION_STOP4, 0},  // S_SPINCUSHION_STOP3
+	{SPR_SHRP, 4,  4, A_SetObjectFlags, MF_PAIN, 1, S_SPINCUSHION_LOOK, 0},   // S_SPINCUSHION_STOP4
 
 	// Crushstacean
-	{SPR_CRAB, 0,  3, {A_CrushstaceanWalk},  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM2, 0},     // S_CRUSHSTACEAN_ROAM1
-	{SPR_CRAB, 1,  3, {A_CrushstaceanWalk},  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM3, 0},     // S_CRUSHSTACEAN_ROAM2
-	{SPR_CRAB, 0,  3, {A_CrushstaceanWalk},  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM4, 0},     // S_CRUSHSTACEAN_ROAM3
-	{SPR_CRAB, 2,  3, {A_CrushstaceanWalk},  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM1, 0},     // S_CRUSHSTACEAN_ROAM4
-	{SPR_CRAB, 0, 40, {NULL},                0,                        0, S_CRUSHSTACEAN_ROAM1, 0},     // S_CRUSHSTACEAN_ROAMPAUSE
-	{SPR_CRAB, 0, 10, {NULL},                0,                        0, S_CRUSHSTACEAN_PUNCH2, 0},    // S_CRUSHSTACEAN_PUNCH1
-	{SPR_CRAB, 0, -1, {A_CrushstaceanPunch}, 0,                        0, S_CRUSHSTACEAN_ROAMPAUSE, 0}, // S_CRUSHSTACEAN_PUNCH2
-	{SPR_CRAB, 3,  1, {A_CrushclawAim},   40,               20, S_CRUSHCLAW_AIM, 0}, // S_CRUSHCLAW_AIM
-	{SPR_CRAB, 3,  1, {A_CrushclawLaunch}, 0, S_CRUSHCLAW_STAY, S_CRUSHCLAW_OUT, 0}, // S_CRUSHCLAW_OUT
-	{SPR_CRAB, 3, 10, {NULL},              0,                0, S_CRUSHCLAW_IN, 0},  // S_CRUSHCLAW_STAY
-	{SPR_CRAB, 3,  1, {A_CrushclawLaunch}, 1, S_CRUSHCLAW_WAIT, S_CRUSHCLAW_IN, 0},  // S_CRUSHCLAW_IN
-	{SPR_CRAB, 3, 37, {NULL},              0,                0, S_CRUSHCLAW_AIM, 0}, // S_CRUSHCLAW_WAIT
-	{SPR_CRAB, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CRUSHCHAIN
+	{SPR_CRAB, 0,  3, A_CrushstaceanWalk,  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM2, 0},     // S_CRUSHSTACEAN_ROAM1
+	{SPR_CRAB, 1,  3, A_CrushstaceanWalk,  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM3, 0},     // S_CRUSHSTACEAN_ROAM2
+	{SPR_CRAB, 0,  3, A_CrushstaceanWalk,  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM4, 0},     // S_CRUSHSTACEAN_ROAM3
+	{SPR_CRAB, 2,  3, A_CrushstaceanWalk,  0, S_CRUSHSTACEAN_ROAMPAUSE, S_CRUSHSTACEAN_ROAM1, 0},     // S_CRUSHSTACEAN_ROAM4
+	{SPR_CRAB, 0, 40, NULL,                0,                        0, S_CRUSHSTACEAN_ROAM1, 0},     // S_CRUSHSTACEAN_ROAMPAUSE
+	{SPR_CRAB, 0, 10, NULL,                0,                        0, S_CRUSHSTACEAN_PUNCH2, 0},    // S_CRUSHSTACEAN_PUNCH1
+	{SPR_CRAB, 0, -1, A_CrushstaceanPunch, 0,                        0, S_CRUSHSTACEAN_ROAMPAUSE, 0}, // S_CRUSHSTACEAN_PUNCH2
+	{SPR_CRAB, 3,  1, A_CrushclawAim,   40,               20, S_CRUSHCLAW_AIM, 0}, // S_CRUSHCLAW_AIM
+	{SPR_CRAB, 3,  1, A_CrushclawLaunch, 0, S_CRUSHCLAW_STAY, S_CRUSHCLAW_OUT, 0}, // S_CRUSHCLAW_OUT
+	{SPR_CRAB, 3, 10, NULL,              0,                0, S_CRUSHCLAW_IN, 0},  // S_CRUSHCLAW_STAY
+	{SPR_CRAB, 3,  1, A_CrushclawLaunch, 1, S_CRUSHCLAW_WAIT, S_CRUSHCLAW_IN, 0},  // S_CRUSHCLAW_IN
+	{SPR_CRAB, 3, 37, NULL,              0,                0, S_CRUSHCLAW_AIM, 0}, // S_CRUSHCLAW_WAIT
+	{SPR_CRAB, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_CRUSHCHAIN
 
 	// Banpyura
-	{SPR_CR2B, 0,  3, {A_CrushstaceanWalk},  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM2, 0}, // S_BANPYURA_ROAM1
-	{SPR_CR2B, 1,  3, {A_CrushstaceanWalk},  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM3, 0}, // S_BANPYURA_ROAM2
-	{SPR_CR2B, 0,  3, {A_CrushstaceanWalk},  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM4, 0}, // S_BANPYURA_ROAM3
-	{SPR_CR2B, 2,  3, {A_CrushstaceanWalk},  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM1, 0}, // S_BANPYURA_ROAM4
-	{SPR_CR2B, 0, 40, {NULL},                0,                    0, S_BANPYURA_ROAM1, 0}, // S_BANPYURA_ROAMPAUSE
-
-	{SPR_CSPR, 0, 1, {A_CrushclawAim}, 50, 20, S_CDIAG1, 0}, // S_CDIAG1
-	{SPR_CSPR, 1, 1, {A_Pain},          0,  0, S_CDIAG3, 0}, // S_CDIAG2
-	{SPR_CSPR, 2, 1, {A_CrushclawAim}, 50, 20, S_CDIAG4, 0}, // S_CDIAG3
-	{SPR_CSPR, 3, 1, {A_CrushclawAim}, 50, 20, S_CDIAG5, 0}, // S_CDIAG4
-	{SPR_CSPR, 4, 1, {A_CrushclawAim}, 50, 20, S_CDIAG6, 0}, // S_CDIAG5
-	{SPR_CSPR, 3, 1, {A_CrushclawAim}, 50, 20, S_CDIAG7, 0}, // S_CDIAG6
-	{SPR_CSPR, 2, 1, {A_CrushclawAim}, 50, 20, S_CDIAG8, 0}, // S_CDIAG7
-	{SPR_CSPR, 1, 1, {A_CrushclawAim}, 50, 20, S_CDIAG1, 0}, // S_CDIAG8
+	{SPR_CR2B, 0,  3, A_CrushstaceanWalk,  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM2, 0}, // S_BANPYURA_ROAM1
+	{SPR_CR2B, 1,  3, A_CrushstaceanWalk,  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM3, 0}, // S_BANPYURA_ROAM2
+	{SPR_CR2B, 0,  3, A_CrushstaceanWalk,  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM4, 0}, // S_BANPYURA_ROAM3
+	{SPR_CR2B, 2,  3, A_CrushstaceanWalk,  0, S_BANPYURA_ROAMPAUSE, S_BANPYURA_ROAM1, 0}, // S_BANPYURA_ROAM4
+	{SPR_CR2B, 0, 40, NULL,                0,                    0, S_BANPYURA_ROAM1, 0}, // S_BANPYURA_ROAMPAUSE
+
+	{SPR_CSPR, 0, 1, A_CrushclawAim, 50, 20, S_CDIAG1, 0}, // S_CDIAG1
+	{SPR_CSPR, 1, 1, A_Pain,          0,  0, S_CDIAG3, 0}, // S_CDIAG2
+	{SPR_CSPR, 2, 1, A_CrushclawAim, 50, 20, S_CDIAG4, 0}, // S_CDIAG3
+	{SPR_CSPR, 3, 1, A_CrushclawAim, 50, 20, S_CDIAG5, 0}, // S_CDIAG4
+	{SPR_CSPR, 4, 1, A_CrushclawAim, 50, 20, S_CDIAG6, 0}, // S_CDIAG5
+	{SPR_CSPR, 3, 1, A_CrushclawAim, 50, 20, S_CDIAG7, 0}, // S_CDIAG6
+	{SPR_CSPR, 2, 1, A_CrushclawAim, 50, 20, S_CDIAG8, 0}, // S_CDIAG7
+	{SPR_CSPR, 1, 1, A_CrushclawAim, 50, 20, S_CDIAG1, 0}, // S_CDIAG8
 
 	// Jet Jaw
-	{SPR_JJAW, 0, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM2, 0}, // S_JETJAW_ROAM1
-	{SPR_JJAW, 0, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM3, 0}, // S_JETJAW_ROAM2
-	{SPR_JJAW, 0, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM4, 0}, // S_JETJAW_ROAM3
-	{SPR_JJAW, 0, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM5, 0}, // S_JETJAW_ROAM4
-	{SPR_JJAW, 1, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM6, 0}, // S_JETJAW_ROAM5
-	{SPR_JJAW, 1, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM7, 0}, // S_JETJAW_ROAM6
-	{SPR_JJAW, 1, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM8, 0}, // S_JETJAW_ROAM7
-	{SPR_JJAW, 1, 1, {A_JetJawRoam},               0,               0,   S_JETJAW_ROAM1, 0}, // S_JETJAW_ROAM8
-	{SPR_JJAW, 0, 1, {A_DualAction}, S_JETJAW_CHOMP16, S_JETJAW_SOUND,  S_JETJAW_CHOMP2, 0}, // S_JETJAW_CHOMP1
-	{SPR_JJAW, 0, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP3, 0}, // S_JETJAW_CHOMP2
-	{SPR_JJAW, 0, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP4, 0}, // S_JETJAW_CHOMP3
-	{SPR_JJAW, 0, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP5, 0}, // S_JETJAW_CHOMP4
-	{SPR_JJAW, 1, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP6, 0}, // S_JETJAW_CHOMP5
-	{SPR_JJAW, 1, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP7, 0}, // S_JETJAW_CHOMP6
-	{SPR_JJAW, 1, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP8, 0}, // S_JETJAW_CHOMP7
-	{SPR_JJAW, 1, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP9, 0}, // S_JETJAW_CHOMP8
-	{SPR_JJAW, 2, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP10, 0}, // S_JETJAW_CHOMP9
-	{SPR_JJAW, 2, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP11, 0}, // S_JETJAW_CHOMP10
-	{SPR_JJAW, 2, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP12, 0}, // S_JETJAW_CHOMP11
-	{SPR_JJAW, 2, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP13, 0}, // S_JETJAW_CHOMP12
-	{SPR_JJAW, 3, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP14, 0}, // S_JETJAW_CHOMP13
-	{SPR_JJAW, 3, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP15, 0}, // S_JETJAW_CHOMP14
-	{SPR_JJAW, 3, 1, {A_JetJawChomp},              0,               0, S_JETJAW_CHOMP16, 0}, // S_JETJAW_CHOMP15
-	{SPR_JJAW, 3, 1, {A_JetJawChomp},              0,               0,  S_JETJAW_CHOMP1, 0}, // S_JETJAW_CHOMP16
-	{SPR_JJAW, 0, 1, {A_PlayAttackSound},          0,               0,   S_JETJAW_SOUND, 0}, // S_JETJAW_SOUND
+	{SPR_JJAW, 0, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM2, 0}, // S_JETJAW_ROAM1
+	{SPR_JJAW, 0, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM3, 0}, // S_JETJAW_ROAM2
+	{SPR_JJAW, 0, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM4, 0}, // S_JETJAW_ROAM3
+	{SPR_JJAW, 0, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM5, 0}, // S_JETJAW_ROAM4
+	{SPR_JJAW, 1, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM6, 0}, // S_JETJAW_ROAM5
+	{SPR_JJAW, 1, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM7, 0}, // S_JETJAW_ROAM6
+	{SPR_JJAW, 1, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM8, 0}, // S_JETJAW_ROAM7
+	{SPR_JJAW, 1, 1, A_JetJawRoam,               0,               0,   S_JETJAW_ROAM1, 0}, // S_JETJAW_ROAM8
+	{SPR_JJAW, 0, 1, A_DualAction, S_JETJAW_CHOMP16, S_JETJAW_SOUND,  S_JETJAW_CHOMP2, 0}, // S_JETJAW_CHOMP1
+	{SPR_JJAW, 0, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP3, 0}, // S_JETJAW_CHOMP2
+	{SPR_JJAW, 0, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP4, 0}, // S_JETJAW_CHOMP3
+	{SPR_JJAW, 0, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP5, 0}, // S_JETJAW_CHOMP4
+	{SPR_JJAW, 1, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP6, 0}, // S_JETJAW_CHOMP5
+	{SPR_JJAW, 1, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP7, 0}, // S_JETJAW_CHOMP6
+	{SPR_JJAW, 1, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP8, 0}, // S_JETJAW_CHOMP7
+	{SPR_JJAW, 1, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP9, 0}, // S_JETJAW_CHOMP8
+	{SPR_JJAW, 2, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP10, 0}, // S_JETJAW_CHOMP9
+	{SPR_JJAW, 2, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP11, 0}, // S_JETJAW_CHOMP10
+	{SPR_JJAW, 2, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP12, 0}, // S_JETJAW_CHOMP11
+	{SPR_JJAW, 2, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP13, 0}, // S_JETJAW_CHOMP12
+	{SPR_JJAW, 3, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP14, 0}, // S_JETJAW_CHOMP13
+	{SPR_JJAW, 3, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP15, 0}, // S_JETJAW_CHOMP14
+	{SPR_JJAW, 3, 1, A_JetJawChomp,              0,               0, S_JETJAW_CHOMP16, 0}, // S_JETJAW_CHOMP15
+	{SPR_JJAW, 3, 1, A_JetJawChomp,              0,               0,  S_JETJAW_CHOMP1, 0}, // S_JETJAW_CHOMP16
+	{SPR_JJAW, 0, 1, A_PlayAttackSound,          0,               0,   S_JETJAW_SOUND, 0}, // S_JETJAW_SOUND
 
 	// Snailer
-	{SPR_SNLR, 0, 1, {A_SnailerThink}, 0, 0, S_SNAILER1, 0}, // S_SNAILER1
-	{SPR_BOM1, 0, 0, {A_FlickySpawn}, 1<<17, 0, S_XPLD1, 0}, // S_SNAILER_FLICKY
+	{SPR_SNLR, 0, 1, A_SnailerThink, 0, 0, S_SNAILER1, 0}, // S_SNAILER1
+	{SPR_BOM1, 0, 0, A_FlickySpawn, 1<<17, 0, S_XPLD1, 0}, // S_SNAILER_FLICKY
 
 	// Vulture
-	{SPR_VLTR, 4, 35,        {A_Look},         1, 0, S_VULTURE_STND, 0},  // S_VULTURE_STND
-	{SPR_VLTR, 4, 3,         {A_VultureHover}, 0, 0, S_VULTURE_DRIFT, 0}, // S_VULTURE_DRIFT
-	{SPR_VLTR, 0, 6,         {A_VultureBlast}, 0, 0, S_VULTURE_ZOOM2, 0}, // S_VULTURE_ZOOM1
-	{SPR_VLTR, 0, 3,         {A_VultureFly},   0, 0, S_VULTURE_ZOOM2, 0}, // S_VULTURE_ZOOM2
-	{SPR_VLTR, 0, 3*TICRATE, {NULL},           0, 0, S_VULTURE_DRIFT, 0}, // S_VULTURE_STUNNED
+	{SPR_VLTR, 4, 35,        A_Look,         1, 0, S_VULTURE_STND, 0},  // S_VULTURE_STND
+	{SPR_VLTR, 4, 3,         A_VultureHover, 0, 0, S_VULTURE_DRIFT, 0}, // S_VULTURE_DRIFT
+	{SPR_VLTR, 0, 6,         A_VultureBlast, 0, 0, S_VULTURE_ZOOM2, 0}, // S_VULTURE_ZOOM1
+	{SPR_VLTR, 0, 3,         A_VultureFly,   0, 0, S_VULTURE_ZOOM2, 0}, // S_VULTURE_ZOOM2
+	{SPR_VLTR, 0, 3*TICRATE, NULL,           0, 0, S_VULTURE_DRIFT, 0}, // S_VULTURE_STUNNED
 
 	// Pointy
-	{SPR_PNTY, 0,  1, {A_PointyThink}, 0, 0, S_POINTY1, 0}, // S_POINTY1
+	{SPR_PNTY, 0,  1, A_PointyThink, 0, 0, S_POINTY1, 0}, // S_POINTY1
 
 	// Pointy Ball
-	{SPR_PNTY, 1,  1, {A_CheckBuddy}, 0, 0, S_POINTYBALL1, 0}, // S_POINTYBALL1
+	{SPR_PNTY, 1,  1, A_CheckBuddy, 0, 0, S_POINTYBALL1, 0}, // S_POINTYBALL1
 
 	// Robo-Hood
-	{SPR_ARCH, 0,       4,            {A_Look}, 2048<<FRACBITS,   0, S_ROBOHOOD_LOOK, 0},  // S_ROBOHOOD_LOOK
-	{SPR_ARCH, 0,       1,       {A_HoodThink},              0,   0, S_ROBOHOOD_STAND, 0}, // S_ROBOHOOD_STAND
-	{SPR_ARCH, 2, TICRATE, {A_PlayActiveSound},              0,   0, S_ROBOHOOD_FIRE2, 0}, // S_ROBOHOOD_FIRE1
-	{SPR_ARCH, 2,      20,        {A_HoodFire},       MT_ARROW,   0, S_ROBOHOOD_STAND, 0}, // S_ROBOHOOD_FIRE2
-	{SPR_ARCH, 1,       1,      {A_FaceTarget},              0,   0, S_ROBOHOOD_JUMP2, 0}, // S_ROBOHOOD_JUMP1
-	{SPR_ARCH, 1,       1,        {A_BunnyHop},              4, -10, S_ROBOHOOD_JUMP3, 0}, // S_ROBOHOOD_JUMP2
-	{SPR_ARCH, 1,       1,        {A_HoodFall},              0,   0, S_ROBOHOOD_JUMP3, 0}, // S_ROBOHOOD_JUMP3
+	{SPR_ARCH, 0,       4,            A_Look, 2048<<FRACBITS,   0, S_ROBOHOOD_LOOK, 0},  // S_ROBOHOOD_LOOK
+	{SPR_ARCH, 0,       1,       A_HoodThink,              0,   0, S_ROBOHOOD_STAND, 0}, // S_ROBOHOOD_STAND
+	{SPR_ARCH, 2, TICRATE, A_PlayActiveSound,              0,   0, S_ROBOHOOD_FIRE2, 0}, // S_ROBOHOOD_FIRE1
+	{SPR_ARCH, 2,      20,        A_HoodFire,       MT_ARROW,   0, S_ROBOHOOD_STAND, 0}, // S_ROBOHOOD_FIRE2
+	{SPR_ARCH, 1,       1,      A_FaceTarget,              0,   0, S_ROBOHOOD_JUMP2, 0}, // S_ROBOHOOD_JUMP1
+	{SPR_ARCH, 1,       1,        A_BunnyHop,              4, -10, S_ROBOHOOD_JUMP3, 0}, // S_ROBOHOOD_JUMP2
+	{SPR_ARCH, 1,       1,        A_HoodFall,              0,   0, S_ROBOHOOD_JUMP3, 0}, // S_ROBOHOOD_JUMP3
 
 	// Castlebot Facestabber
-	{SPR_CBFS, 0,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND2, 0},   // S_FACESTABBER_STND1
-	{SPR_CBFS, 1,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND3, 0},   // S_FACESTABBER_STND2
-	{SPR_CBFS, 2,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND4, 0},   // S_FACESTABBER_STND3
-	{SPR_CBFS, 3,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND5, 0},   // S_FACESTABBER_STND4
-	{SPR_CBFS, 4,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND6, 0},   // S_FACESTABBER_STND5
-	{SPR_CBFS, 5,  1,        {A_Chase},  0, 0, S_FACESTABBER_STND1, 0},   // S_FACESTABBER_STND6
-	{SPR_CBFS, 0,  1,  {A_FaceStabRev},                  20, S_FACESTABBER_CHARGE2, S_FACESTABBER_CHARGE1, 0}, // S_FACESTABBER_CHARGE1
-	{SPR_CBFS, 0,  0,   {A_FaceTarget},                   0,                     0, S_FACESTABBER_CHARGE3, 0}, // S_FACESTABBER_CHARGE2
-	{SPR_CBFS, 7,  1, {A_FaceStabHurl},                   6, S_FACESTABBER_CHARGE4, S_FACESTABBER_CHARGE3, 0}, // S_FACESTABBER_CHARGE3
-	{SPR_CBFS, 7,  1, {A_FaceStabMiss}, 0,   S_FACESTABBER_STND1, S_FACESTABBER_CHARGE4, 0}, // S_FACESTABBER_CHARGE4
-	{SPR_CBFS, 0, 35,         {A_Pain}, 0,                     0, S_FACESTABBER_STND1, 0}, // S_FACESTABBER_PAIN
-	{SPR_CBFS, 0,  2,   {A_BossScream}, 1, 0, S_FACESTABBER_DIE2, 0},  // S_FACESTABBER_DIE1
-	{SPR_NULL, 0,  2,   {A_BossScream}, 1, 0, S_FACESTABBER_DIE3, 0},  // S_FACESTABBER_DIE2
-	{SPR_NULL, 0,  0,       {A_Repeat}, 7, S_FACESTABBER_DIE1,    S_XPLD_FLICKY, 0},       // S_FACESTABBER_DIE3
-
-	{SPR_STAB, FF_PAPERSPRITE|FF_TRANS50|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FACESTABBERSPEAR
+	{SPR_CBFS, 0,  1,        A_Chase,  0, 0, S_FACESTABBER_STND2, 0},   // S_FACESTABBER_STND1
+	{SPR_CBFS, 1,  1,        A_Chase,  0, 0, S_FACESTABBER_STND3, 0},   // S_FACESTABBER_STND2
+	{SPR_CBFS, 2,  1,        A_Chase,  0, 0, S_FACESTABBER_STND4, 0},   // S_FACESTABBER_STND3
+	{SPR_CBFS, 3,  1,        A_Chase,  0, 0, S_FACESTABBER_STND5, 0},   // S_FACESTABBER_STND4
+	{SPR_CBFS, 4,  1,        A_Chase,  0, 0, S_FACESTABBER_STND6, 0},   // S_FACESTABBER_STND5
+	{SPR_CBFS, 5,  1,        A_Chase,  0, 0, S_FACESTABBER_STND1, 0},   // S_FACESTABBER_STND6
+	{SPR_CBFS, 0,  1,  A_FaceStabRev,                  20, S_FACESTABBER_CHARGE2, S_FACESTABBER_CHARGE1, 0}, // S_FACESTABBER_CHARGE1
+	{SPR_CBFS, 0,  0,   A_FaceTarget,                   0,                     0, S_FACESTABBER_CHARGE3, 0}, // S_FACESTABBER_CHARGE2
+	{SPR_CBFS, 7,  1, A_FaceStabHurl,                   6, S_FACESTABBER_CHARGE4, S_FACESTABBER_CHARGE3, 0}, // S_FACESTABBER_CHARGE3
+	{SPR_CBFS, 7,  1, A_FaceStabMiss, 0,   S_FACESTABBER_STND1, S_FACESTABBER_CHARGE4, 0}, // S_FACESTABBER_CHARGE4
+	{SPR_CBFS, 0, 35,         A_Pain, 0,                     0, S_FACESTABBER_STND1, 0}, // S_FACESTABBER_PAIN
+	{SPR_CBFS, 0,  2,   A_BossScream, 1, 0, S_FACESTABBER_DIE2, 0},  // S_FACESTABBER_DIE1
+	{SPR_NULL, 0,  2,   A_BossScream, 1, 0, S_FACESTABBER_DIE3, 0},  // S_FACESTABBER_DIE2
+	{SPR_NULL, 0,  0,       A_Repeat, 7, S_FACESTABBER_DIE1,    S_XPLD_FLICKY, 0},       // S_FACESTABBER_DIE3
+
+	{SPR_STAB, FF_PAPERSPRITE|FF_TRANS50|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_FACESTABBERSPEAR
 
 	// Egg Guard
-	{SPR_SPSH,  0,  1,       {A_Look}, 0, 0, S_EGGGUARD_STND, 0},  // S_EGGGUARD_STND
-	{SPR_SPSH,  1,  3, {A_GuardChase}, 0, 0, S_EGGGUARD_WALK2, 0}, // S_EGGGUARD_WALK1
-	{SPR_SPSH,  2,  3, {A_GuardChase}, 0, 0, S_EGGGUARD_WALK3, 0}, // S_EGGGUARD_WALK2
-	{SPR_SPSH,  3,  3, {A_GuardChase}, 0, 0, S_EGGGUARD_WALK4, 0}, // S_EGGGUARD_WALK3
-	{SPR_SPSH,  4,  3, {A_GuardChase}, 0, 0, S_EGGGUARD_WALK1, 0}, // S_EGGGUARD_WALK4
-	{SPR_SPSH,  5,  5,         {NULL}, 0, 0, S_EGGGUARD_MAD2, 0},  // S_EGGGUARD_MAD1
-	{SPR_SPSH,  6,  5,         {NULL}, 0, 0, S_EGGGUARD_MAD3, 0},  // S_EGGGUARD_MAD2
-	{SPR_SPSH,  7, 15,         {NULL}, 0, 0, S_EGGGUARD_RUN1, 0},  // S_EGGGUARD_MAD3
-	{SPR_SPSH,  8,  1, {A_GuardChase}, 0, 0, S_EGGGUARD_RUN2, 0},  // S_EGGGUARD_RUN1
-	{SPR_SPSH,  9,  1, {A_GuardChase}, 0, 0, S_EGGGUARD_RUN3, 0},  // S_EGGGUARD_RUN2
-	{SPR_SPSH, 10,  1, {A_GuardChase}, 0, 0, S_EGGGUARD_RUN4, 0},  // S_EGGGUARD_RUN3
-	{SPR_SPSH, 11,  1, {A_GuardChase}, 0, 0, S_EGGGUARD_RUN1, 0},  // S_EGGGUARD_RUN4
-
-	{SPR_ESHI, 0, 8, {A_EggShield}, 0, 0, S_EGGSHIELD, 0},  // S_EGGSHIELD
-	{SPR_ESHI, 0, TICRATE/2, {NULL}, 0, 0, S_NULL, 0}, // S_EGGSHIELDBREAK
+	{SPR_SPSH,  0,  1,       A_Look, 0, 0, S_EGGGUARD_STND, 0},  // S_EGGGUARD_STND
+	{SPR_SPSH,  1,  3, A_GuardChase, 0, 0, S_EGGGUARD_WALK2, 0}, // S_EGGGUARD_WALK1
+	{SPR_SPSH,  2,  3, A_GuardChase, 0, 0, S_EGGGUARD_WALK3, 0}, // S_EGGGUARD_WALK2
+	{SPR_SPSH,  3,  3, A_GuardChase, 0, 0, S_EGGGUARD_WALK4, 0}, // S_EGGGUARD_WALK3
+	{SPR_SPSH,  4,  3, A_GuardChase, 0, 0, S_EGGGUARD_WALK1, 0}, // S_EGGGUARD_WALK4
+	{SPR_SPSH,  5,  5,         NULL, 0, 0, S_EGGGUARD_MAD2, 0},  // S_EGGGUARD_MAD1
+	{SPR_SPSH,  6,  5,         NULL, 0, 0, S_EGGGUARD_MAD3, 0},  // S_EGGGUARD_MAD2
+	{SPR_SPSH,  7, 15,         NULL, 0, 0, S_EGGGUARD_RUN1, 0},  // S_EGGGUARD_MAD3
+	{SPR_SPSH,  8,  1, A_GuardChase, 0, 0, S_EGGGUARD_RUN2, 0},  // S_EGGGUARD_RUN1
+	{SPR_SPSH,  9,  1, A_GuardChase, 0, 0, S_EGGGUARD_RUN3, 0},  // S_EGGGUARD_RUN2
+	{SPR_SPSH, 10,  1, A_GuardChase, 0, 0, S_EGGGUARD_RUN4, 0},  // S_EGGGUARD_RUN3
+	{SPR_SPSH, 11,  1, A_GuardChase, 0, 0, S_EGGGUARD_RUN1, 0},  // S_EGGGUARD_RUN4
+
+	{SPR_ESHI, 0, 8, A_EggShield, 0, 0, S_EGGSHIELD, 0},  // S_EGGSHIELD
+	{SPR_ESHI, 0, TICRATE/2, NULL, 0, 0, S_NULL, 0}, // S_EGGSHIELDBREAK
 
 	// Green Snapper
-	{SPR_GSNP, 0, TICRATE, {NULL},             0,              0,               S_SNAPPER_SPAWN2, 0}, // S_SNAPPER_SPAWN
-	{SPR_GSNP, 0, 2,       {A_SnapperSpawn},   MT_SNAPPER_LEG, MT_SNAPPER_HEAD, S_GSNAPPER_STND, 0},  // S_SNAPPER_SPAWN2
-	{SPR_GSNP, 0, 1,       {A_SnapperThinker}, 0,              0,               S_GSNAPPER_STND, 0},  // S_GSNAPPER_STND
-	{SPR_GSNP, 0, 2,       {A_Chase},          0,              0,               S_GSNAPPER2, 0},      // S_GSNAPPER1
-	{SPR_GSNP, 1, 2,       {A_Chase},          0,              0,               S_GSNAPPER3, 0},      // S_GSNAPPER2
-	{SPR_GSNP, 2, 2,       {A_Chase},          0,              0,               S_GSNAPPER4, 0},      // S_GSNAPPER3
-	{SPR_GSNP, 3, 2,       {A_Chase},          0,              0,               S_GSNAPPER1, 0},      // S_GSNAPPER4
-	{SPR_GSNP, 0, 0,       {A_KillSegments},   0,              0,               S_XPLD_FLICKY, 0},    // S_SNAPPER_XPLD
-	{SPR_GSNL, 0, -1,      {NULL},             0,              0,               S_NULL, 0},           // S_SNAPPER_LEG
-	{SPR_GSNL, 1, -1,      {NULL},             0,              0,               S_NULL, 0},           // S_SNAPPER_LEGRAISE
-	{SPR_GSNH, 0, -1,      {NULL},             0,              0,               S_NULL, 0},           // S_SNAPPER_HEAD
+	{SPR_GSNP, 0, TICRATE, NULL,             0,              0,               S_SNAPPER_SPAWN2, 0}, // S_SNAPPER_SPAWN
+	{SPR_GSNP, 0, 2,       A_SnapperSpawn,   MT_SNAPPER_LEG, MT_SNAPPER_HEAD, S_GSNAPPER_STND, 0},  // S_SNAPPER_SPAWN2
+	{SPR_GSNP, 0, 1,       A_SnapperThinker, 0,              0,               S_GSNAPPER_STND, 0},  // S_GSNAPPER_STND
+	{SPR_GSNP, 0, 2,       A_Chase,          0,              0,               S_GSNAPPER2, 0},      // S_GSNAPPER1
+	{SPR_GSNP, 1, 2,       A_Chase,          0,              0,               S_GSNAPPER3, 0},      // S_GSNAPPER2
+	{SPR_GSNP, 2, 2,       A_Chase,          0,              0,               S_GSNAPPER4, 0},      // S_GSNAPPER3
+	{SPR_GSNP, 3, 2,       A_Chase,          0,              0,               S_GSNAPPER1, 0},      // S_GSNAPPER4
+	{SPR_GSNP, 0, 0,       A_KillSegments,   0,              0,               S_XPLD_FLICKY, 0},    // S_SNAPPER_XPLD
+	{SPR_GSNL, 0, -1,      NULL,             0,              0,               S_NULL, 0},           // S_SNAPPER_LEG
+	{SPR_GSNL, 1, -1,      NULL,             0,              0,               S_NULL, 0},           // S_SNAPPER_LEGRAISE
+	{SPR_GSNH, 0, -1,      NULL,             0,              0,               S_NULL, 0},           // S_SNAPPER_HEAD
 
 	// Minus
-	{SPR_MNUD, 0,            1,  {NULL},           0, 0, S_MINUS_STND, 0},     // S_MINUS_INIT (required for objectplace to work)
-	{SPR_NULL, 0,            10, {A_Look},         0, 0, S_MINUS_STND, 0},     // S_MINUS_STND
-	{SPR_NULL, 0,            1,  {A_MinusDigging}, 1, 0, S_MINUS_DIGGING2, 0}, // S_MINUS_DIGGING1
-	{SPR_NULL, 0,            1,  {A_MinusDigging}, 0, 0, S_MINUS_DIGGING3, 0}, // S_MINUS_DIGGING2
-	{SPR_NULL, 0,            1,  {A_MinusDigging}, 0, 0, S_MINUS_DIGGING4, 0}, // S_MINUS_DIGGING3
-	{SPR_NULL, 0,            1,  {A_MinusDigging}, 0, 0, S_MINUS_DIGGING1, 0}, // S_MINUS_DIGGING4
-	{SPR_NULL, 0,            25, {NULL},           0, 0, S_MINUS_POPUP, 0},    // S_MINUS_BURST0
-	{SPR_MNUD, FF_ANIMATE,   5,  {NULL},           1, 2, S_MINUS_BURST2, 0},   // S_MINUS_BURST1
-	{SPR_MNUD, 1|FF_ANIMATE, 5,  {NULL},           1, 2, S_MINUS_BURST3, 0},   // S_MINUS_BURST2
-	{SPR_MNUD, 2|FF_ANIMATE, 5,  {NULL},           1, 2, S_MINUS_BURST4, 0},   // S_MINUS_BURST3
-	{SPR_MNUD, 3|FF_ANIMATE, 5,  {NULL},           1, 2, S_MINUS_BURST5, 0},   // S_MINUS_BURST4
-	{SPR_MNUD, 4|FF_ANIMATE, 5,  {NULL},           1, 2, S_MINUSDIRT2, 0},     // S_MINUS_BURST5
-	{SPR_MNUS, 3, 1, {A_MinusPopup}, 0, 0, S_MINUS_AERIAL1, 0}, // S_MINUS_POPUP
-	{SPR_MNUS, 0, 1, {A_MinusCheck}, 0, 1, S_MINUS_AERIAL2, 0},   // S_MINUS_AERIAL1
-	{SPR_MNUS, 1, 1, {A_MinusCheck}, 0, 1, S_MINUS_AERIAL3, 0},   // S_MINUS_AERIAL2
-	{SPR_MNUS, 2, 1, {A_MinusCheck}, 0, 1, S_MINUS_AERIAL4, 0},   // S_MINUS_AERIAL3
-	{SPR_MNUS, 3, 1, {A_MinusCheck}, 0, 1, S_MINUS_AERIAL1, 0},   // S_MINUS_AERIAL4
-
-	{SPR_MNUD, FF_ANIMATE, 6, {NULL}, 1, 5, S_MINUSDIRT2, 0}, // S_MINUSDIRT1
-	{SPR_MNUD, 5,          8, {NULL}, 3, 5, S_MINUSDIRT3, 0}, // S_MINUSDIRT2
-	{SPR_MNUD, 4,          8, {NULL}, 3, 5, S_MINUSDIRT4, 0}, // S_MINUSDIRT3
-	{SPR_MNUD, 3,          8, {NULL}, 3, 5, S_MINUSDIRT5, 0}, // S_MINUSDIRT4
-	{SPR_MNUD, 2,          8, {NULL}, 3, 5, S_MINUSDIRT6, 0}, // S_MINUSDIRT5
-	{SPR_MNUD, 1,          8, {NULL}, 3, 5, S_MINUSDIRT7, 0}, // S_MINUSDIRT6
-	{SPR_MNUD, 0,          8, {NULL}, 3, 5, S_NULL, 0},       // S_MINUSDIRT7
+	{SPR_MNUD, 0,            1,  NULL,           0, 0, S_MINUS_STND, 0},     // S_MINUS_INIT (required for objectplace to work)
+	{SPR_NULL, 0,            10, A_Look,         0, 0, S_MINUS_STND, 0},     // S_MINUS_STND
+	{SPR_NULL, 0,            1,  A_MinusDigging, 1, 0, S_MINUS_DIGGING2, 0}, // S_MINUS_DIGGING1
+	{SPR_NULL, 0,            1,  A_MinusDigging, 0, 0, S_MINUS_DIGGING3, 0}, // S_MINUS_DIGGING2
+	{SPR_NULL, 0,            1,  A_MinusDigging, 0, 0, S_MINUS_DIGGING4, 0}, // S_MINUS_DIGGING3
+	{SPR_NULL, 0,            1,  A_MinusDigging, 0, 0, S_MINUS_DIGGING1, 0}, // S_MINUS_DIGGING4
+	{SPR_NULL, 0,            25, NULL,           0, 0, S_MINUS_POPUP, 0},    // S_MINUS_BURST0
+	{SPR_MNUD, FF_ANIMATE,   5,  NULL,           1, 2, S_MINUS_BURST2, 0},   // S_MINUS_BURST1
+	{SPR_MNUD, 1|FF_ANIMATE, 5,  NULL,           1, 2, S_MINUS_BURST3, 0},   // S_MINUS_BURST2
+	{SPR_MNUD, 2|FF_ANIMATE, 5,  NULL,           1, 2, S_MINUS_BURST4, 0},   // S_MINUS_BURST3
+	{SPR_MNUD, 3|FF_ANIMATE, 5,  NULL,           1, 2, S_MINUS_BURST5, 0},   // S_MINUS_BURST4
+	{SPR_MNUD, 4|FF_ANIMATE, 5,  NULL,           1, 2, S_MINUSDIRT2, 0},     // S_MINUS_BURST5
+	{SPR_MNUS, 3, 1, A_MinusPopup, 0, 0, S_MINUS_AERIAL1, 0}, // S_MINUS_POPUP
+	{SPR_MNUS, 0, 1, A_MinusCheck, 0, 1, S_MINUS_AERIAL2, 0},   // S_MINUS_AERIAL1
+	{SPR_MNUS, 1, 1, A_MinusCheck, 0, 1, S_MINUS_AERIAL3, 0},   // S_MINUS_AERIAL2
+	{SPR_MNUS, 2, 1, A_MinusCheck, 0, 1, S_MINUS_AERIAL4, 0},   // S_MINUS_AERIAL3
+	{SPR_MNUS, 3, 1, A_MinusCheck, 0, 1, S_MINUS_AERIAL1, 0},   // S_MINUS_AERIAL4
+
+	{SPR_MNUD, FF_ANIMATE, 6, NULL, 1, 5, S_MINUSDIRT2, 0}, // S_MINUSDIRT1
+	{SPR_MNUD, 5,          8, NULL, 3, 5, S_MINUSDIRT3, 0}, // S_MINUSDIRT2
+	{SPR_MNUD, 4,          8, NULL, 3, 5, S_MINUSDIRT4, 0}, // S_MINUSDIRT3
+	{SPR_MNUD, 3,          8, NULL, 3, 5, S_MINUSDIRT5, 0}, // S_MINUSDIRT4
+	{SPR_MNUD, 2,          8, NULL, 3, 5, S_MINUSDIRT6, 0}, // S_MINUSDIRT5
+	{SPR_MNUD, 1,          8, NULL, 3, 5, S_MINUSDIRT7, 0}, // S_MINUSDIRT6
+	{SPR_MNUD, 0,          8, NULL, 3, 5, S_NULL, 0},       // S_MINUSDIRT7
 
 	// Spring Shell
-	{SPR_SSHL,  0,  4, {A_Look},  0, 0, S_SSHELL_STND, 0},    // S_SSHELL_STND
-	{SPR_SSHL,  0,  4, {A_Chase}, 0, 0, S_SSHELL_RUN2, 0},    // S_SSHELL_RUN1
-	{SPR_SSHL,  1,  4, {A_Chase}, 0, 0, S_SSHELL_RUN3, 0},    // S_SSHELL_RUN2
-	{SPR_SSHL,  2,  4, {A_Chase}, 0, 0, S_SSHELL_RUN4, 0},    // S_SSHELL_RUN3
-	{SPR_SSHL,  3,  4, {A_Chase}, 0, 0, S_SSHELL_RUN1, 0},    // S_SSHELL_RUN4
-	{SPR_SSHL,  7,  4, {A_Pain},  0, 0, S_SSHELL_SPRING2, 0}, // S_SSHELL_SPRING1
-	{SPR_SSHL,  6,  1, {NULL},    0, 0, S_SSHELL_SPRING3, 0}, // S_SSHELL_SPRING2
-	{SPR_SSHL,  5,  1, {NULL},    0, 0, S_SSHELL_SPRING4, 0}, // S_SSHELL_SPRING3
-	{SPR_SSHL,  4,  1, {NULL},    0, 0, S_SSHELL_RUN1, 0},    // S_SSHELL_SPRING4
+	{SPR_SSHL,  0,  4, A_Look,  0, 0, S_SSHELL_STND, 0},    // S_SSHELL_STND
+	{SPR_SSHL,  0,  4, A_Chase, 0, 0, S_SSHELL_RUN2, 0},    // S_SSHELL_RUN1
+	{SPR_SSHL,  1,  4, A_Chase, 0, 0, S_SSHELL_RUN3, 0},    // S_SSHELL_RUN2
+	{SPR_SSHL,  2,  4, A_Chase, 0, 0, S_SSHELL_RUN4, 0},    // S_SSHELL_RUN3
+	{SPR_SSHL,  3,  4, A_Chase, 0, 0, S_SSHELL_RUN1, 0},    // S_SSHELL_RUN4
+	{SPR_SSHL,  7,  4, A_Pain,  0, 0, S_SSHELL_SPRING2, 0}, // S_SSHELL_SPRING1
+	{SPR_SSHL,  6,  1, NULL,    0, 0, S_SSHELL_SPRING3, 0}, // S_SSHELL_SPRING2
+	{SPR_SSHL,  5,  1, NULL,    0, 0, S_SSHELL_SPRING4, 0}, // S_SSHELL_SPRING3
+	{SPR_SSHL,  4,  1, NULL,    0, 0, S_SSHELL_RUN1, 0},    // S_SSHELL_SPRING4
 
 	// Spring Shell (yellow)
-	{SPR_SSHL,  8,  4, {A_Look},  0, 0, S_YSHELL_STND, 0},    // S_YSHELL_STND
-	{SPR_SSHL,  8,  4, {A_Chase}, 0, 0, S_YSHELL_RUN2, 0},    // S_YSHELL_RUN1
-	{SPR_SSHL,  9,  4, {A_Chase}, 0, 0, S_YSHELL_RUN3, 0},    // S_YSHELL_RUN2
-	{SPR_SSHL, 10,  4, {A_Chase}, 0, 0, S_YSHELL_RUN4, 0},    // S_YSHELL_RUN3
-	{SPR_SSHL, 11,  4, {A_Chase}, 0, 0, S_YSHELL_RUN1, 0},    // S_YSHELL_RUN4
-	{SPR_SSHL, 15,  4, {A_Pain},  0, 0, S_YSHELL_SPRING2, 0}, // S_YSHELL_SPRING1
-	{SPR_SSHL, 14,  1, {NULL},    0, 0, S_YSHELL_SPRING3, 0}, // S_YSHELL_SPRING2
-	{SPR_SSHL, 13,  1, {NULL},    0, 0, S_YSHELL_SPRING4, 0}, // S_YSHELL_SPRING3
-	{SPR_SSHL, 12,  1, {NULL},    0, 0, S_YSHELL_RUN1, 0},    // S_YSHELL_SPRING4
+	{SPR_SSHL,  8,  4, A_Look,  0, 0, S_YSHELL_STND, 0},    // S_YSHELL_STND
+	{SPR_SSHL,  8,  4, A_Chase, 0, 0, S_YSHELL_RUN2, 0},    // S_YSHELL_RUN1
+	{SPR_SSHL,  9,  4, A_Chase, 0, 0, S_YSHELL_RUN3, 0},    // S_YSHELL_RUN2
+	{SPR_SSHL, 10,  4, A_Chase, 0, 0, S_YSHELL_RUN4, 0},    // S_YSHELL_RUN3
+	{SPR_SSHL, 11,  4, A_Chase, 0, 0, S_YSHELL_RUN1, 0},    // S_YSHELL_RUN4
+	{SPR_SSHL, 15,  4, A_Pain,  0, 0, S_YSHELL_SPRING2, 0}, // S_YSHELL_SPRING1
+	{SPR_SSHL, 14,  1, NULL,    0, 0, S_YSHELL_SPRING3, 0}, // S_YSHELL_SPRING2
+	{SPR_SSHL, 13,  1, NULL,    0, 0, S_YSHELL_SPRING4, 0}, // S_YSHELL_SPRING3
+	{SPR_SSHL, 12,  1, NULL,    0, 0, S_YSHELL_RUN1, 0},    // S_YSHELL_SPRING4
 
 	// Unidus
-	{SPR_UNID, 0, 4, {A_Look},       0, 0, S_UNIDUS_STND, 0}, // S_UNIDUS_STND
-	{SPR_UNID, 0, 1, {A_Chase},      0, 0, S_UNIDUS_RUN , 0}, // S_UNIDUS_RUN
-	{SPR_UNID, 1, 1, {A_UnidusBall}, 1, 0, S_UNIDUS_BALL, 0}, // S_UNIDUS_BALL
+	{SPR_UNID, 0, 4, A_Look,       0, 0, S_UNIDUS_STND, 0}, // S_UNIDUS_STND
+	{SPR_UNID, 0, 1, A_Chase,      0, 0, S_UNIDUS_RUN , 0}, // S_UNIDUS_RUN
+	{SPR_UNID, 1, 1, A_UnidusBall, 1, 0, S_UNIDUS_BALL, 0}, // S_UNIDUS_BALL
 
 	// Canarivore
-	{SPR_CANA, 0, 5,  {A_Look},          1200*FRACUNIT+1,   1,                 S_CANARIVORE_LOOK, 0},      // S_CANARIVORE_LOOK
-	{SPR_CANA, 0, 3,  {A_PlaySound},     sfx_s3k76,         1,                 S_CANARIVORE_AWAKEN2, 0},   // S_CANARIVORE_AWAKEN1
-	{SPR_CANA, 1, 5,  {NULL},            0,                 0,                 S_CANARIVORE_AWAKEN3, 0},   // S_CANARIVORE_AWAKEN2
-	{SPR_CANA, 2, 8,  {NULL},            0,                 0,                 S_CANARIVORE_GAS1, 0},      // S_CANARIVORE_AWAKEN3
-	{SPR_CANA, 2, 15, {A_PlaySound},     sfx_s3k93,         1,                 S_CANARIVORE_GAS2, 0},      // S_CANARIVORE_GAS1
-	{SPR_CANA, 1, 4,  {NULL},            0,                 0,                 S_CANARIVORE_GAS3, 0},      // S_CANARIVORE_GAS2
-	{SPR_CANA, 2, 0,  {A_PlaySound},     sfx_s3k97,         1,                 S_CANARIVORE_GAS4, 0},      // S_CANARIVORE_GAS3
-	{SPR_CANA, 2, 5,  {A_CanarivoreGas}, MT_CANARIVORE_GAS, 0,                 S_CANARIVORE_GAS5, 0},      // S_CANARIVORE_GAS4
-	{SPR_CANA, 1, 5,  {NULL},            0,                 0,                 S_CANARIVORE_GASREPEAT, 0}, // S_CANARIVORE_GAS5
-	{SPR_CANA, 2, 0,  {A_Repeat},        6,                 S_CANARIVORE_GAS4, S_CANARIVORE_CLOSE1, 0},    // S_CANARIVORE_GASREPEAT
-	{SPR_CANA, 1, 8,  {NULL},            0,                 0,                 S_CANARIVORE_CLOSE2, 0},     // S_CANARIVORE_CLOSE1
-	{SPR_CANA, 0, 90, {NULL},            sfx_s3k5d,         1,                 S_CANARIVORE_LOOK, 0},      // S_CANARIVORE_CLOSE2
-
-	{SPR_CANG, 0|FF_TRANS90, 2,         {NULL},            0, 0,       S_CANARIVOREGAS_2, 0}, // S_CANARIVOREGAS_1
-	{SPR_CANG, 0|FF_TRANS30, 2*TICRATE, {A_SetRandomTics}, 2, TICRATE, S_CANARIVOREGAS_3, 0}, // S_CANARIVOREGAS_2
-	{SPR_CANG, 0|FF_TRANS40, 10,        {NULL},            0, 0,       S_CANARIVOREGAS_4, 0}, // S_CANARIVOREGAS_3
-	{SPR_CANG, 0|FF_TRANS50, 10,        {NULL},            0, 0,       S_CANARIVOREGAS_5, 0}, // S_CANARIVOREGAS_4
-	{SPR_CANG, 0|FF_TRANS60, 10,        {NULL},            0, 0,       S_CANARIVOREGAS_6, 0}, // S_CANARIVOREGAS_5
-	{SPR_CANG, 0|FF_TRANS70, 10,        {NULL},            0, 0,       S_CANARIVOREGAS_7, 0}, // S_CANARIVOREGAS_6
-	{SPR_CANG, 0|FF_TRANS80, 10,        {NULL},            0, 0,       S_CANARIVOREGAS_8, 0}, // S_CANARIVOREGAS_7
-	{SPR_CANG, 0|FF_TRANS90, 10,        {NULL},            0, 0,       S_NULL, 0},            // S_CANARIVOREGAS_8
+	{SPR_CANA, 0, 5,  A_Look,          1200*FRACUNIT+1,   1,                 S_CANARIVORE_LOOK, 0},      // S_CANARIVORE_LOOK
+	{SPR_CANA, 0, 3,  A_PlaySound,     sfx_s3k76,         1,                 S_CANARIVORE_AWAKEN2, 0},   // S_CANARIVORE_AWAKEN1
+	{SPR_CANA, 1, 5,  NULL,            0,                 0,                 S_CANARIVORE_AWAKEN3, 0},   // S_CANARIVORE_AWAKEN2
+	{SPR_CANA, 2, 8,  NULL,            0,                 0,                 S_CANARIVORE_GAS1, 0},      // S_CANARIVORE_AWAKEN3
+	{SPR_CANA, 2, 15, A_PlaySound,     sfx_s3k93,         1,                 S_CANARIVORE_GAS2, 0},      // S_CANARIVORE_GAS1
+	{SPR_CANA, 1, 4,  NULL,            0,                 0,                 S_CANARIVORE_GAS3, 0},      // S_CANARIVORE_GAS2
+	{SPR_CANA, 2, 0,  A_PlaySound,     sfx_s3k97,         1,                 S_CANARIVORE_GAS4, 0},      // S_CANARIVORE_GAS3
+	{SPR_CANA, 2, 5,  A_CanarivoreGas, MT_CANARIVORE_GAS, 0,                 S_CANARIVORE_GAS5, 0},      // S_CANARIVORE_GAS4
+	{SPR_CANA, 1, 5,  NULL,            0,                 0,                 S_CANARIVORE_GASREPEAT, 0}, // S_CANARIVORE_GAS5
+	{SPR_CANA, 2, 0,  A_Repeat,        6,                 S_CANARIVORE_GAS4, S_CANARIVORE_CLOSE1, 0},    // S_CANARIVORE_GASREPEAT
+	{SPR_CANA, 1, 8,  NULL,            0,                 0,                 S_CANARIVORE_CLOSE2, 0},     // S_CANARIVORE_CLOSE1
+	{SPR_CANA, 0, 90, NULL,            sfx_s3k5d,         1,                 S_CANARIVORE_LOOK, 0},      // S_CANARIVORE_CLOSE2
+
+	{SPR_CANG, 0|FF_TRANS90, 2,         NULL,            0, 0,       S_CANARIVOREGAS_2, 0}, // S_CANARIVOREGAS_1
+	{SPR_CANG, 0|FF_TRANS30, 2*TICRATE, A_SetRandomTics, 2, TICRATE, S_CANARIVOREGAS_3, 0}, // S_CANARIVOREGAS_2
+	{SPR_CANG, 0|FF_TRANS40, 10,        NULL,            0, 0,       S_CANARIVOREGAS_4, 0}, // S_CANARIVOREGAS_3
+	{SPR_CANG, 0|FF_TRANS50, 10,        NULL,            0, 0,       S_CANARIVOREGAS_5, 0}, // S_CANARIVOREGAS_4
+	{SPR_CANG, 0|FF_TRANS60, 10,        NULL,            0, 0,       S_CANARIVOREGAS_6, 0}, // S_CANARIVOREGAS_5
+	{SPR_CANG, 0|FF_TRANS70, 10,        NULL,            0, 0,       S_CANARIVOREGAS_7, 0}, // S_CANARIVOREGAS_6
+	{SPR_CANG, 0|FF_TRANS80, 10,        NULL,            0, 0,       S_CANARIVOREGAS_8, 0}, // S_CANARIVOREGAS_7
+	{SPR_CANG, 0|FF_TRANS90, 10,        NULL,            0, 0,       S_NULL, 0},            // S_CANARIVOREGAS_8
 
 	// Pyre Fly
-	{SPR_PYRE, FF_ANIMATE, -1, {NULL}, 3, 2, S_NULL, 0}, // S_PYREFLY_FLY
-	{SPR_PYRE, 4|FF_ANIMATE|FF_FULLBRIGHT, -1, {NULL}, 3, 2, S_NULL, 0}, // S_PYREFLY_BURN
-	{SPR_FLAM, FF_FULLBRIGHT, 10, {NULL}, 0, 0, S_PYREFIRE2, 0}, // S_PYREFIRE1
-	{SPR_FLAM, 1|FF_FULLBRIGHT, 10, {A_FireShrink}, 0, 16, S_NULL, 0}, // S_PYREFIRE2
+	{SPR_PYRE, FF_ANIMATE, -1, NULL, 3, 2, S_NULL, 0}, // S_PYREFLY_FLY
+	{SPR_PYRE, 4|FF_ANIMATE|FF_FULLBRIGHT, -1, NULL, 3, 2, S_NULL, 0}, // S_PYREFLY_BURN
+	{SPR_FLAM, FF_FULLBRIGHT, 10, NULL, 0, 0, S_PYREFIRE2, 0}, // S_PYREFIRE1
+	{SPR_FLAM, 1|FF_FULLBRIGHT, 10, A_FireShrink, 0, 16, S_NULL, 0}, // S_PYREFIRE2
 
 	// Pterabyte
-	{SPR_NULL, 0, -1, {A_SpawnPterabytes}, 0, 0, S_PTERABYTESPAWNER, 0},    // S_PTERABYTESPAWNER
-	{SPR_NULL, 0,  1, {A_PterabyteHover},  0, 0, S_PTERABYTEWAYPOINT, 0},   // S_PTERABYTEWAYPOINT
-	{SPR_PTER, 0,  6, {NULL},              0, 0, S_PTERABYTE_FLY2, 0},      // S_PTERABYTE_FLY1
-	{SPR_PTER, 1,  2, {NULL},              0, 0, S_PTERABYTE_FLY3, 0},      // S_PTERABYTE_FLY2
-	{SPR_PTER, 2,  6, {NULL},              0, 0, S_PTERABYTE_FLY4, 0},      // S_PTERABYTE_FLY3
-	{SPR_PTER, 3,  2, {NULL},              0, 0, S_PTERABYTE_FLY1, 0},      // S_PTERABYTE_FLY4
-	{SPR_PTER, 4,  1, {NULL},              0, 0, S_PTERABYTE_SWOOPDOWN, 0}, // S_PTERABYTE_SWOOPDOWN
-	{SPR_PTER, 0,  1, {NULL},              0, 0, S_PTERABYTE_SWOOPUP, 0},   // S_PTERABYTE_SWOOPUP
+	{SPR_NULL, 0, -1, A_SpawnPterabytes, 0, 0, S_PTERABYTESPAWNER, 0},    // S_PTERABYTESPAWNER
+	{SPR_NULL, 0,  1, A_PterabyteHover,  0, 0, S_PTERABYTEWAYPOINT, 0},   // S_PTERABYTEWAYPOINT
+	{SPR_PTER, 0,  6, NULL,              0, 0, S_PTERABYTE_FLY2, 0},      // S_PTERABYTE_FLY1
+	{SPR_PTER, 1,  2, NULL,              0, 0, S_PTERABYTE_FLY3, 0},      // S_PTERABYTE_FLY2
+	{SPR_PTER, 2,  6, NULL,              0, 0, S_PTERABYTE_FLY4, 0},      // S_PTERABYTE_FLY3
+	{SPR_PTER, 3,  2, NULL,              0, 0, S_PTERABYTE_FLY1, 0},      // S_PTERABYTE_FLY4
+	{SPR_PTER, 4,  1, NULL,              0, 0, S_PTERABYTE_SWOOPDOWN, 0}, // S_PTERABYTE_SWOOPDOWN
+	{SPR_PTER, 0,  1, NULL,              0, 0, S_PTERABYTE_SWOOPUP, 0},   // S_PTERABYTE_SWOOPUP
 
 	// Dragonbomber
-	{SPR_DRAB,                0, -1, {A_DragonbomberSpawn}, 6, 0, S_NULL, 0},                          // S_DRAGONBOMBER
-	{SPR_DRAB, FF_PAPERSPRITE|7,  1,        {A_DragonWing}, 0, 0, S_DRAGONWING2, 0},                   // S_DRAGONWING1
-	{SPR_DRAB, FF_PAPERSPRITE|8,  1,        {A_DragonWing}, 0, 0, S_DRAGONWING3, 0},                   // S_DRAGONWING2
-	{SPR_DRAB, FF_PAPERSPRITE|9,  1,        {A_DragonWing}, 0, 0, S_DRAGONWING4, 0},                   // S_DRAGONWING3
-	{SPR_DRAB, FF_PAPERSPRITE|10, 1,        {A_DragonWing}, 0, 0, S_DRAGONWING1, 0},                   // S_DRAGONWING4
-	{SPR_DRAB,                1,  1,     {A_DragonSegment}, 0, 0, S_DRAGONTAIL_LOADED, 0},             // S_DRAGONTAIL_LOADED
-	{SPR_DRAB,                2,  1,     {A_DragonSegment}, 0, 0, S_DRAGONTAIL_EMPTYLOOP, 0},          // S_DRAGONTAIL_EMPTY
-	{SPR_DRAB,                2,  0,            {A_Repeat}, 3*TICRATE, S_DRAGONTAIL_EMPTY, S_DRAGONTAIL_RELOAD, 0}, // S_DRAGONTAIL_EMPTYLOOP
-	{SPR_DRAB,                1,  0,   {A_PlayActiveSound}, 0, 0, S_DRAGONTAIL_LOADED, 0},             // S_DRAGONTAIL_RELOAD
-	{SPR_DRAB,                3,  1,        {A_MinusCheck}, S_DRAGONMINE_LAND1, 0, S_DRAGONMINE, 0},   // S_DRAGONMINE
-	{SPR_DRAB,                4,  0,   {A_PlayActiveSound}, 0, 0, S_DRAGONMINE_LAND2, 0},              // S_DRAGONMINE_LAND1
-	{SPR_DRAB,                4,  2,            {A_Thrust}, 0, 1, S_DRAGONMINE_SLOWFLASH1, 0},         // S_DRAGONMINE_LAND2
-	{SPR_DRAB,                5, 11,                {NULL}, 0, 0, S_DRAGONMINE_SLOWFLASH2, 0},         // S_DRAGONMINE_SLOWFLASH1
-	{SPR_DRAB,  FF_FULLBRIGHT|6,  1,   {A_PlayAttackSound}, 0, 0, S_DRAGONMINE_SLOWLOOP, 0},           // S_DRAGONMINE_SLOWFLASH2
-	{SPR_DRAB,                5,  0,            {A_Repeat}, 4, S_DRAGONMINE_SLOWFLASH1, S_DRAGONMINE_FASTFLASH1, 0}, // S_DRAGONMINE_SLOWLOOP
-	{SPR_DRAB,                5,  3,                {NULL}, 0, 0, S_DRAGONMINE_FASTFLASH2, 0},         // S_DRAGONMINE_FASTFLASH1
-	{SPR_DRAB,  FF_FULLBRIGHT|6,  1,   {A_PlayAttackSound}, 0, 0, S_DRAGONMINE_FASTLOOP, 0},           // S_DRAGONMINE_FASTFLASH2
-	{SPR_DRAB,                5,  0,            {A_Repeat}, 5, S_DRAGONMINE_FASTFLASH1, S_DEATHSTATE, 0}, // S_DRAGONMINE_FASTLOOP
+	{SPR_DRAB,                0, -1, A_DragonbomberSpawn, 6, 0, S_NULL, 0},                          // S_DRAGONBOMBER
+	{SPR_DRAB, FF_PAPERSPRITE|7,  1,        A_DragonWing, 0, 0, S_DRAGONWING2, 0},                   // S_DRAGONWING1
+	{SPR_DRAB, FF_PAPERSPRITE|8,  1,        A_DragonWing, 0, 0, S_DRAGONWING3, 0},                   // S_DRAGONWING2
+	{SPR_DRAB, FF_PAPERSPRITE|9,  1,        A_DragonWing, 0, 0, S_DRAGONWING4, 0},                   // S_DRAGONWING3
+	{SPR_DRAB, FF_PAPERSPRITE|10, 1,        A_DragonWing, 0, 0, S_DRAGONWING1, 0},                   // S_DRAGONWING4
+	{SPR_DRAB,                1,  1,     A_DragonSegment, 0, 0, S_DRAGONTAIL_LOADED, 0},             // S_DRAGONTAIL_LOADED
+	{SPR_DRAB,                2,  1,     A_DragonSegment, 0, 0, S_DRAGONTAIL_EMPTYLOOP, 0},          // S_DRAGONTAIL_EMPTY
+	{SPR_DRAB,                2,  0,            A_Repeat, 3*TICRATE, S_DRAGONTAIL_EMPTY, S_DRAGONTAIL_RELOAD, 0}, // S_DRAGONTAIL_EMPTYLOOP
+	{SPR_DRAB,                1,  0,   A_PlayActiveSound, 0, 0, S_DRAGONTAIL_LOADED, 0},             // S_DRAGONTAIL_RELOAD
+	{SPR_DRAB,                3,  1,        A_MinusCheck, S_DRAGONMINE_LAND1, 0, S_DRAGONMINE, 0},   // S_DRAGONMINE
+	{SPR_DRAB,                4,  0,   A_PlayActiveSound, 0, 0, S_DRAGONMINE_LAND2, 0},              // S_DRAGONMINE_LAND1
+	{SPR_DRAB,                4,  2,            A_Thrust, 0, 1, S_DRAGONMINE_SLOWFLASH1, 0},         // S_DRAGONMINE_LAND2
+	{SPR_DRAB,                5, 11,                NULL, 0, 0, S_DRAGONMINE_SLOWFLASH2, 0},         // S_DRAGONMINE_SLOWFLASH1
+	{SPR_DRAB,  FF_FULLBRIGHT|6,  1,   A_PlayAttackSound, 0, 0, S_DRAGONMINE_SLOWLOOP, 0},           // S_DRAGONMINE_SLOWFLASH2
+	{SPR_DRAB,                5,  0,            A_Repeat, 4, S_DRAGONMINE_SLOWFLASH1, S_DRAGONMINE_FASTFLASH1, 0}, // S_DRAGONMINE_SLOWLOOP
+	{SPR_DRAB,                5,  3,                NULL, 0, 0, S_DRAGONMINE_FASTFLASH2, 0},         // S_DRAGONMINE_FASTFLASH1
+	{SPR_DRAB,  FF_FULLBRIGHT|6,  1,   A_PlayAttackSound, 0, 0, S_DRAGONMINE_FASTLOOP, 0},           // S_DRAGONMINE_FASTFLASH2
+	{SPR_DRAB,                5,  0,            A_Repeat, 5, S_DRAGONMINE_FASTFLASH1, S_DEATHSTATE, 0}, // S_DRAGONMINE_FASTLOOP
 
 	// Boss Explosion
-	{SPR_BOM2, FF_FULLBRIGHT|FF_ANIMATE, (5*7), {NULL}, 6, 5, S_NULL, 0}, // S_BOSSEXPLODE
+	{SPR_BOM2, FF_FULLBRIGHT|FF_ANIMATE, (5*7), NULL, 6, 5, S_NULL, 0}, // S_BOSSEXPLODE
 
 	// S3&K Boss Explosion
-	{SPR_BOM3, FF_FULLBRIGHT,   1, {NULL}, 0, 0, S_SONIC3KBOSSEXPLOSION2, 0}, // S_SONIC3KBOSSEXPLOSION1
-	{SPR_BOM3, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_SONIC3KBOSSEXPLOSION3, 0}, // S_SONIC3KBOSSEXPLOSION2
-	{SPR_BOM3, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_SONIC3KBOSSEXPLOSION4, 0}, // S_SONIC3KBOSSEXPLOSION3
-	{SPR_BOM3, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_SONIC3KBOSSEXPLOSION5, 0}, // S_SONIC3KBOSSEXPLOSION4
-	{SPR_BOM3, FF_FULLBRIGHT|4, 3, {NULL}, 0, 0, S_SONIC3KBOSSEXPLOSION6, 0}, // S_SONIC3KBOSSEXPLOSION5
-	{SPR_BOM3, FF_FULLBRIGHT|5, 4, {NULL}, 0, 0, S_NULL, 0}, // S_SONIC3KBOSSEXPLOSION6
+	{SPR_BOM3, FF_FULLBRIGHT,   1, NULL, 0, 0, S_SONIC3KBOSSEXPLOSION2, 0}, // S_SONIC3KBOSSEXPLOSION1
+	{SPR_BOM3, FF_FULLBRIGHT|1, 1, NULL, 0, 0, S_SONIC3KBOSSEXPLOSION3, 0}, // S_SONIC3KBOSSEXPLOSION2
+	{SPR_BOM3, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_SONIC3KBOSSEXPLOSION4, 0}, // S_SONIC3KBOSSEXPLOSION3
+	{SPR_BOM3, FF_FULLBRIGHT|3, 2, NULL, 0, 0, S_SONIC3KBOSSEXPLOSION5, 0}, // S_SONIC3KBOSSEXPLOSION4
+	{SPR_BOM3, FF_FULLBRIGHT|4, 3, NULL, 0, 0, S_SONIC3KBOSSEXPLOSION6, 0}, // S_SONIC3KBOSSEXPLOSION5
+	{SPR_BOM3, FF_FULLBRIGHT|5, 4, NULL, 0, 0, S_NULL, 0}, // S_SONIC3KBOSSEXPLOSION6
 
-	{SPR_JETF, FF_ANIMATE|FF_FULLBRIGHT, -1, {NULL}, 2, 1, S_NULL, 0}, // S_JETFUME1
+	{SPR_JETF, FF_ANIMATE|FF_FULLBRIGHT, -1, NULL, 2, 1, S_NULL, 0}, // S_JETFUME1
 
 	// Boss 1
-	{SPR_EGGM,  0,   1, {A_Boss1Chase},            0, 0, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_STND
-	{SPR_EGGM, FF_ANIMATE|17, 35, {A_FaceTarget},  1, 2, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_ROFL
-	{SPR_EGGM,  1,   3, {A_FaceTarget},            0, 0, S_EGGMOBILE_LATK2, 0},  // S_EGGMOBILE_LATK1
-	{SPR_EGGM,  2,  15, {NULL},                    0, 0, S_EGGMOBILE_LATK3, 0},  // S_EGGMOBILE_LATK2
-	{SPR_EGGM,  3,   2, {NULL},                    0, 0, S_EGGMOBILE_LATK4, 0},  // S_EGGMOBILE_LATK3
-	{SPR_EGGM,  4,   2, {A_FaceTarget},            0, 0, S_EGGMOBILE_LATK5, 0},  // S_EGGMOBILE_LATK4
-	{SPR_EGGM,  6,   0, {A_PrepareRepeat},        45, 0, S_EGGMOBILE_LATK6, 0},  // S_EGGMOBILE_LATK5
-	{SPR_EGGM,  5,   1, {A_Boss1Laser},     MT_LASER, 0, S_EGGMOBILE_LATK7, 0},  // S_EGGMOBILE_LATK6
-	{SPR_EGGM,  6,   1, {A_Boss1Laser},     MT_LASER, (1<<16), S_EGGMOBILE_LATK8, 0},  // S_EGGMOBILE_LATK7
-	{SPR_EGGM,  5,   0, {A_Repeat}, 45, S_EGGMOBILE_LATK6, S_EGGMOBILE_LATK9, 0},  // S_EGGMOBILE_LATK8
-	{SPR_EGGM,  8,  2, {NULL},                     0, 0, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_LATK9
-	{SPR_EGGM,  9,   3, {A_FaceTarget},            0, 0, S_EGGMOBILE_RATK2, 0},  // S_EGGMOBILE_RATK1
-	{SPR_EGGM, 10,  15, {NULL},                    0, 0, S_EGGMOBILE_RATK3, 0},  // S_EGGMOBILE_RATK2
-	{SPR_EGGM, 11,   2, {NULL},                    0, 0, S_EGGMOBILE_RATK4, 0},  // S_EGGMOBILE_RATK3
-	{SPR_EGGM, 12,   2, {A_FaceTarget},            0, 0, S_EGGMOBILE_RATK5, 0},  // S_EGGMOBILE_RATK4
-	{SPR_EGGM, 14,   0, {A_PrepareRepeat},        45, 0, S_EGGMOBILE_RATK6, 0},  // S_EGGMOBILE_RATK5
-	{SPR_EGGM, 13,   1, {A_Boss1Laser},     MT_LASER, 1, S_EGGMOBILE_RATK7, 0},  // S_EGGMOBILE_RATK6
-	{SPR_EGGM, 14,   1, {A_Boss1Laser},     MT_LASER, 1|(1<<16), S_EGGMOBILE_RATK8, 0},  // S_EGGMOBILE_RATK7
-	{SPR_EGGM, 13,   0, {A_Repeat}, 45, S_EGGMOBILE_RATK6, S_EGGMOBILE_RATK9, 0},  // S_EGGMOBILE_RATK8
-	{SPR_EGGM, 16,  2, {NULL},                     0, 0, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_RATK9
-	{SPR_EGGM,  0,  0, {A_PrepareRepeat},            45, 0, S_EGGMOBILE_PANIC2, 0},  // S_EGGMOBILE_PANIC1
-	{SPR_EGGM, FF_ANIMATE|1, 16, {A_FaceTarget},      3, 4, S_EGGMOBILE_PANIC3, 0},  // S_EGGMOBILE_PANIC2
-	{SPR_EGGM,  7,  1, {A_Boss1Laser},         MT_LASER, 2, S_EGGMOBILE_PANIC4, 0},  // S_EGGMOBILE_PANIC3
-	{SPR_EGGM,  6,  1, {A_Boss1Laser},         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC5, 0},  // S_EGGMOBILE_PANIC4
-	{SPR_EGGM,  6,  0, {A_Repeat}, 45,  S_EGGMOBILE_PANIC3, S_EGGMOBILE_PANIC6, 0},  // S_EGGMOBILE_PANIC5
-	{SPR_EGGM,  0,  0, {A_PrepareRepeat},            45, 0, S_EGGMOBILE_PANIC7, 0},  // S_EGGMOBILE_PANIC6
-	{SPR_EGGM, FF_ANIMATE|9, 16, {A_FaceTarget},      3, 4, S_EGGMOBILE_PANIC8, 0},  // S_EGGMOBILE_PANIC7
-	{SPR_EGGM, 15,  1, {A_Boss1Laser},         MT_LASER, 2, S_EGGMOBILE_PANIC9, 0},  // S_EGGMOBILE_PANIC8
-	{SPR_EGGM, 14,  1, {A_Boss1Laser},         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC10, 0},  // S_EGGMOBILE_PANIC9
-	{SPR_EGGM, 14,  0, {A_Repeat}, 45,  S_EGGMOBILE_PANIC8, S_EGGMOBILE_PANIC11, 0}, // S_EGGMOBILE_PANIC10
-	{SPR_EGGM,  0,  0, {A_PrepareRepeat},            45, 0, S_EGGMOBILE_PANIC12, 0}, // S_EGGMOBILE_PANIC11
-	{SPR_EGGM, FF_ANIMATE|1, 16, {A_FaceTarget},      3, 4, S_EGGMOBILE_PANIC13, 0}, // S_EGGMOBILE_PANIC12
-	{SPR_EGGM,  7,  1, {A_Boss1Laser},         MT_LASER, 2, S_EGGMOBILE_PANIC14, 0}, // S_EGGMOBILE_PANIC13
-	{SPR_EGGM,  6,  1, {A_Boss1Laser},         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC15, 0}, // S_EGGMOBILE_PANIC14
-	{SPR_EGGM,  6,  0, {A_Repeat}, 45,    S_EGGMOBILE_PANIC13, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_PANIC15
-	{SPR_EGGM, 19,  24, {A_Pain},                  0, 0, S_EGGMOBILE_PAIN2, 0},  // S_EGGMOBILE_PAIN
-	{SPR_EGGM, 19,  16, {A_SkullAttack},           3, 1, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_PAIN2
-	{SPR_EGGM, 20,  2, {A_Fall},                  17, 0, S_EGGMOBILE_DIE2, 0},   // S_EGGMOBILE_DIE1
-	{SPR_EGGM, 20,  2, {A_BossScream},             0, 0, S_EGGMOBILE_DIE3, 0},   // S_EGGMOBILE_DIE2
-	{SPR_EGGM, 20,  0, {A_Repeat}, 17, S_EGGMOBILE_DIE2, S_EGGMOBILE_DIE4, 0},   // S_EGGMOBILE_DIE3
-	{SPR_EGGM, 20,  -1, {A_BossDeath},             0, 0, S_NULL, 0},             // S_EGGMOBILE_DIE4
-	{SPR_EGGM, 21,  2, {A_BossScream},             0, 0, S_EGGMOBILE_FLEE2, 0},  // S_EGGMOBILE_FLEE1
-	{SPR_EGGM, 22,  2, {A_BossScream},             0, 0, S_EGGMOBILE_FLEE1, 0},  // S_EGGMOBILE_FLEE2
-	{SPR_UNID,  1,  1, {A_UnidusBall},             2, 0, S_EGGMOBILE_BALL, 0},   // S_EGGMOBILE_BALL
-	{SPR_NULL,  0,  1, {A_FocusTarget},            0, 0, S_EGGMOBILE_TARGET, 0}, // S_EGGMOBILE_TARGET
-
-	{SPR_EGLZ, 0, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSEGLZ1
-	{SPR_EGLZ, 1, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSEGLZ2
+	{SPR_EGGM,  0,   1, A_Boss1Chase,            0, 0, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_STND
+	{SPR_EGGM, FF_ANIMATE|17, 35, A_FaceTarget,  1, 2, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_ROFL
+	{SPR_EGGM,  1,   3, A_FaceTarget,            0, 0, S_EGGMOBILE_LATK2, 0},  // S_EGGMOBILE_LATK1
+	{SPR_EGGM,  2,  15, NULL,                    0, 0, S_EGGMOBILE_LATK3, 0},  // S_EGGMOBILE_LATK2
+	{SPR_EGGM,  3,   2, NULL,                    0, 0, S_EGGMOBILE_LATK4, 0},  // S_EGGMOBILE_LATK3
+	{SPR_EGGM,  4,   2, A_FaceTarget,            0, 0, S_EGGMOBILE_LATK5, 0},  // S_EGGMOBILE_LATK4
+	{SPR_EGGM,  6,   0, A_PrepareRepeat,        45, 0, S_EGGMOBILE_LATK6, 0},  // S_EGGMOBILE_LATK5
+	{SPR_EGGM,  5,   1, A_Boss1Laser,     MT_LASER, 0, S_EGGMOBILE_LATK7, 0},  // S_EGGMOBILE_LATK6
+	{SPR_EGGM,  6,   1, A_Boss1Laser,     MT_LASER, (1<<16), S_EGGMOBILE_LATK8, 0},  // S_EGGMOBILE_LATK7
+	{SPR_EGGM,  5,   0, A_Repeat, 45, S_EGGMOBILE_LATK6, S_EGGMOBILE_LATK9, 0},  // S_EGGMOBILE_LATK8
+	{SPR_EGGM,  8,  2, NULL,                     0, 0, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_LATK9
+	{SPR_EGGM,  9,   3, A_FaceTarget,            0, 0, S_EGGMOBILE_RATK2, 0},  // S_EGGMOBILE_RATK1
+	{SPR_EGGM, 10,  15, NULL,                    0, 0, S_EGGMOBILE_RATK3, 0},  // S_EGGMOBILE_RATK2
+	{SPR_EGGM, 11,   2, NULL,                    0, 0, S_EGGMOBILE_RATK4, 0},  // S_EGGMOBILE_RATK3
+	{SPR_EGGM, 12,   2, A_FaceTarget,            0, 0, S_EGGMOBILE_RATK5, 0},  // S_EGGMOBILE_RATK4
+	{SPR_EGGM, 14,   0, A_PrepareRepeat,        45, 0, S_EGGMOBILE_RATK6, 0},  // S_EGGMOBILE_RATK5
+	{SPR_EGGM, 13,   1, A_Boss1Laser,     MT_LASER, 1, S_EGGMOBILE_RATK7, 0},  // S_EGGMOBILE_RATK6
+	{SPR_EGGM, 14,   1, A_Boss1Laser,     MT_LASER, 1|(1<<16), S_EGGMOBILE_RATK8, 0},  // S_EGGMOBILE_RATK7
+	{SPR_EGGM, 13,   0, A_Repeat, 45, S_EGGMOBILE_RATK6, S_EGGMOBILE_RATK9, 0},  // S_EGGMOBILE_RATK8
+	{SPR_EGGM, 16,  2, NULL,                     0, 0, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_RATK9
+	{SPR_EGGM,  0,  0, A_PrepareRepeat,            45, 0, S_EGGMOBILE_PANIC2, 0},  // S_EGGMOBILE_PANIC1
+	{SPR_EGGM, FF_ANIMATE|1, 16, A_FaceTarget,      3, 4, S_EGGMOBILE_PANIC3, 0},  // S_EGGMOBILE_PANIC2
+	{SPR_EGGM,  7,  1, A_Boss1Laser,         MT_LASER, 2, S_EGGMOBILE_PANIC4, 0},  // S_EGGMOBILE_PANIC3
+	{SPR_EGGM,  6,  1, A_Boss1Laser,         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC5, 0},  // S_EGGMOBILE_PANIC4
+	{SPR_EGGM,  6,  0, A_Repeat, 45,  S_EGGMOBILE_PANIC3, S_EGGMOBILE_PANIC6, 0},  // S_EGGMOBILE_PANIC5
+	{SPR_EGGM,  0,  0, A_PrepareRepeat,            45, 0, S_EGGMOBILE_PANIC7, 0},  // S_EGGMOBILE_PANIC6
+	{SPR_EGGM, FF_ANIMATE|9, 16, A_FaceTarget,      3, 4, S_EGGMOBILE_PANIC8, 0},  // S_EGGMOBILE_PANIC7
+	{SPR_EGGM, 15,  1, A_Boss1Laser,         MT_LASER, 2, S_EGGMOBILE_PANIC9, 0},  // S_EGGMOBILE_PANIC8
+	{SPR_EGGM, 14,  1, A_Boss1Laser,         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC10, 0},  // S_EGGMOBILE_PANIC9
+	{SPR_EGGM, 14,  0, A_Repeat, 45,  S_EGGMOBILE_PANIC8, S_EGGMOBILE_PANIC11, 0}, // S_EGGMOBILE_PANIC10
+	{SPR_EGGM,  0,  0, A_PrepareRepeat,            45, 0, S_EGGMOBILE_PANIC12, 0}, // S_EGGMOBILE_PANIC11
+	{SPR_EGGM, FF_ANIMATE|1, 16, A_FaceTarget,      3, 4, S_EGGMOBILE_PANIC13, 0}, // S_EGGMOBILE_PANIC12
+	{SPR_EGGM,  7,  1, A_Boss1Laser,         MT_LASER, 2, S_EGGMOBILE_PANIC14, 0}, // S_EGGMOBILE_PANIC13
+	{SPR_EGGM,  6,  1, A_Boss1Laser,         MT_LASER, 2|(1<<16), S_EGGMOBILE_PANIC15, 0}, // S_EGGMOBILE_PANIC14
+	{SPR_EGGM,  6,  0, A_Repeat, 45,    S_EGGMOBILE_PANIC13, S_EGGMOBILE_ROFL, 0}, // S_EGGMOBILE_PANIC15
+	{SPR_EGGM, 19,  24, A_Pain,                  0, 0, S_EGGMOBILE_PAIN2, 0},  // S_EGGMOBILE_PAIN
+	{SPR_EGGM, 19,  16, A_SkullAttack,           3, 1, S_EGGMOBILE_STND, 0},   // S_EGGMOBILE_PAIN2
+	{SPR_EGGM, 20,  2, A_Fall,                  17, 0, S_EGGMOBILE_DIE2, 0},   // S_EGGMOBILE_DIE1
+	{SPR_EGGM, 20,  2, A_BossScream,             0, 0, S_EGGMOBILE_DIE3, 0},   // S_EGGMOBILE_DIE2
+	{SPR_EGGM, 20,  0, A_Repeat, 17, S_EGGMOBILE_DIE2, S_EGGMOBILE_DIE4, 0},   // S_EGGMOBILE_DIE3
+	{SPR_EGGM, 20,  -1, A_BossDeath,             0, 0, S_NULL, 0},             // S_EGGMOBILE_DIE4
+	{SPR_EGGM, 21,  2, A_BossScream,             0, 0, S_EGGMOBILE_FLEE2, 0},  // S_EGGMOBILE_FLEE1
+	{SPR_EGGM, 22,  2, A_BossScream,             0, 0, S_EGGMOBILE_FLEE1, 0},  // S_EGGMOBILE_FLEE2
+	{SPR_UNID,  1,  1, A_UnidusBall,             2, 0, S_EGGMOBILE_BALL, 0},   // S_EGGMOBILE_BALL
+	{SPR_NULL,  0,  1, A_FocusTarget,            0, 0, S_EGGMOBILE_TARGET, 0}, // S_EGGMOBILE_TARGET
+
+	{SPR_EGLZ, 0, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSEGLZ1
+	{SPR_EGLZ, 1, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSEGLZ2
 
 	// Boss 2
-	{SPR_EGGN, 0, -1,              {NULL},           0,          0, S_NULL, 0},             // S_EGGMOBILE2_STND
-	{SPR_EGGN, 1, 4,               {NULL},           0,          0, S_EGGMOBILE2_POGO2, 0}, // S_EGGMOBILE2_POGO1
-	{SPR_EGGN, 0, 2,  {A_Boss2PogoTarget},  9*FRACUNIT, 8*FRACUNIT, S_EGGMOBILE2_POGO3, 0}, // S_EGGMOBILE2_POGO2
-	{SPR_EGGN, 1, 2,               {NULL},           0,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_POGO3
-	{SPR_EGGN, 2, -1,              {NULL},           0,          0, S_NULL, 0},             // S_EGGMOBILE2_POGO4
-	{SPR_EGGN, 1, 4,               {NULL},           0,          0, S_EGGMOBILE2_POGO6, 0}, // S_EGGMOBILE2_POGO5
-	{SPR_EGGN, 0, 2,  {A_Boss2PogoTarget},  7*FRACUNIT, 8*FRACUNIT, S_EGGMOBILE2_POGO7, 0}, // S_EGGMOBILE2_POGO6
-	{SPR_EGGN, 1, 2,               {NULL},           0,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_POGO7
-	{SPR_EGGN, 3, 24, {A_Boss2TakeDamage},  24+TICRATE,          0, S_EGGMOBILE2_STND, 0},  // S_EGGMOBILE2_PAIN
-	{SPR_EGGN, 4, 24, {A_Boss2TakeDamage},  24+TICRATE,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_PAIN2
-	{SPR_EGGN, 5, 2,             {A_Fall},           0,          0, S_EGGMOBILE2_DIE2, 0},  // S_EGGMOBILE2_DIE1
-	{SPR_EGGN, 5, 2,       {A_BossScream},           0,          0, S_EGGMOBILE2_DIE3, 0},  // S_EGGMOBILE2_DIE2
-	{SPR_EGGN, 5, 0,       {A_Repeat}, 17, S_EGGMOBILE2_DIE2, S_EGGMOBILE2_DIE4, 0},  // S_EGGMOBILE2_DIE3
-	{SPR_EGGN, 5, -1,       {A_BossDeath},           0,          0, S_NULL, 0},             // S_EGGMOBILE2_DIE4
-	{SPR_EGGN, 6, 2,       {A_BossScream},           0,          0, S_EGGMOBILE2_FLEE2, 0}, // S_EGGMOBILE2_FLEE1
-	{SPR_EGGN, 7, 2,       {A_BossScream},           0,          0, S_EGGMOBILE2_FLEE1, 0}, // S_EGGMOBILE2_FLEE2
-
-	{SPR_TANK, 0, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSTANK1
-	{SPR_TANK, 1, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSTANK2
-	{SPR_TANK, 2, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSSPIGOT
+	{SPR_EGGN, 0, -1,              NULL,           0,          0, S_NULL, 0},             // S_EGGMOBILE2_STND
+	{SPR_EGGN, 1, 4,               NULL,           0,          0, S_EGGMOBILE2_POGO2, 0}, // S_EGGMOBILE2_POGO1
+	{SPR_EGGN, 0, 2,  A_Boss2PogoTarget,  9*FRACUNIT, 8*FRACUNIT, S_EGGMOBILE2_POGO3, 0}, // S_EGGMOBILE2_POGO2
+	{SPR_EGGN, 1, 2,               NULL,           0,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_POGO3
+	{SPR_EGGN, 2, -1,              NULL,           0,          0, S_NULL, 0},             // S_EGGMOBILE2_POGO4
+	{SPR_EGGN, 1, 4,               NULL,           0,          0, S_EGGMOBILE2_POGO6, 0}, // S_EGGMOBILE2_POGO5
+	{SPR_EGGN, 0, 2,  A_Boss2PogoTarget,  7*FRACUNIT, 8*FRACUNIT, S_EGGMOBILE2_POGO7, 0}, // S_EGGMOBILE2_POGO6
+	{SPR_EGGN, 1, 2,               NULL,           0,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_POGO7
+	{SPR_EGGN, 3, 24, A_Boss2TakeDamage,  24+TICRATE,          0, S_EGGMOBILE2_STND, 0},  // S_EGGMOBILE2_PAIN
+	{SPR_EGGN, 4, 24, A_Boss2TakeDamage,  24+TICRATE,          0, S_EGGMOBILE2_POGO4, 0}, // S_EGGMOBILE2_PAIN2
+	{SPR_EGGN, 5, 2,             A_Fall,           0,          0, S_EGGMOBILE2_DIE2, 0},  // S_EGGMOBILE2_DIE1
+	{SPR_EGGN, 5, 2,       A_BossScream,           0,          0, S_EGGMOBILE2_DIE3, 0},  // S_EGGMOBILE2_DIE2
+	{SPR_EGGN, 5, 0,       A_Repeat, 17, S_EGGMOBILE2_DIE2, S_EGGMOBILE2_DIE4, 0},  // S_EGGMOBILE2_DIE3
+	{SPR_EGGN, 5, -1,       A_BossDeath,           0,          0, S_NULL, 0},             // S_EGGMOBILE2_DIE4
+	{SPR_EGGN, 6, 2,       A_BossScream,           0,          0, S_EGGMOBILE2_FLEE2, 0}, // S_EGGMOBILE2_FLEE1
+	{SPR_EGGN, 7, 2,       A_BossScream,           0,          0, S_EGGMOBILE2_FLEE1, 0}, // S_EGGMOBILE2_FLEE2
+
+	{SPR_TANK, 0, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSTANK1
+	{SPR_TANK, 1, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSTANK2
+	{SPR_TANK, 2, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSSPIGOT
 
 	// Boss 2 Goop
-	{SPR_GOOP,            0,  2, {A_SpawnObjectRelative}, 0, MT_GOOPTRAIL, S_GOOP2, 0}, // S_GOOP1
-	{SPR_GOOP,            1,  2, {A_SpawnObjectRelative}, 0, MT_GOOPTRAIL, S_GOOP1, 0}, // S_GOOP2
-	{SPR_GOOP,            2, -1,                  {NULL}, 0,            0, S_NULL, 0},  // S_GOOP3
-	{SPR_GOOP, FF_ANIMATE|3, 11,                  {NULL}, 2,            6, S_NULL, 0},  // S_GOOPTRAIL
+	{SPR_GOOP,            0,  2, A_SpawnObjectRelative, 0, MT_GOOPTRAIL, S_GOOP2, 0}, // S_GOOP1
+	{SPR_GOOP,            1,  2, A_SpawnObjectRelative, 0, MT_GOOPTRAIL, S_GOOP1, 0}, // S_GOOP2
+	{SPR_GOOP,            2, -1,                  NULL, 0,            0, S_NULL, 0},  // S_GOOP3
+	{SPR_GOOP, FF_ANIMATE|3, 11,                  NULL, 2,            6, S_NULL, 0},  // S_GOOPTRAIL
 
 	// Boss 3
-	{SPR_EGGO,  0,   1, {NULL},                    0, 0, S_EGGMOBILE3_STND, 0},    // S_EGGMOBILE3_STND
-	{SPR_EGGO,   FF_ANIMATE, 24, {NULL}, 1, 2, S_EGGMOBILE3_ATK2, 0},  // S_EGGMOBILE3_SHOCK
-	{SPR_EGGO, 6|FF_ANIMATE, 24, {NULL}, 1, 2, S_EGGMOBILE3_ATK2, 0}, // S_EGGMOBILE3_ATK1
-	{SPR_EGGO,  2,   2, {NULL},                    0, 0, S_EGGMOBILE3_ATK3A, 0},   // S_EGGMOBILE3_ATK2
-	{SPR_EGGO,  3,   2, {A_BossFireShot}, MT_TORPEDO, 2, S_EGGMOBILE3_ATK3B, 0},   // S_EGGMOBILE3_ATK3A
-	{SPR_EGGO,  3,   2, {A_BossFireShot}, MT_TORPEDO, 4, S_EGGMOBILE3_ATK3C, 0},   // S_EGGMOBILE3_ATK3B
-	{SPR_EGGO,  3,   2, {A_BossFireShot}, MT_TORPEDO, 3, S_EGGMOBILE3_ATK3D, 0},   // S_EGGMOBILE3_ATK3C
-	{SPR_EGGO,  3,   2, {A_BossFireShot}, MT_TORPEDO, 5, S_EGGMOBILE3_ATK4, 0},    // S_EGGMOBILE3_ATK3D
-	{SPR_EGGO,  4,   2, {NULL},                    0, 0, S_EGGMOBILE3_ATK5, 0},    // S_EGGMOBILE3_ATK4
-	{SPR_EGGO,  5,   2, {NULL},                    0, 0, S_EGGMOBILE3_ROFL, 0},  // S_EGGMOBILE3_ATK5
-	{SPR_EGGO,  6|FF_ANIMATE, 60, {NULL}, 1, 2, S_EGGMOBILE3_STND, 0},  // S_EGGMOBILE3_ROFL
-	{SPR_EGGO,  8,   1, {A_Boss3TakeDamage},       0, 0, S_EGGMOBILE3_PAIN2, 0},   // S_EGGMOBILE3_PAIN
-	{SPR_EGGO,  8,  23, {A_Pain},                  0, 0, S_EGGMOBILE3_STND, 0},    // S_EGGMOBILE3_PAIN2
-	{SPR_EGGO,  9,   2, {A_Fall},                  0, 0, S_EGGMOBILE3_DIE2, 0},    // S_EGGMOBILE3_DIE1
-	{SPR_EGGO,  9,   2, {A_BossScream},            0, 0, S_EGGMOBILE3_DIE3, 0},    // S_EGGMOBILE3_DIE2
-	{SPR_EGGO,  9,   0, {A_Repeat}, 17, S_EGGMOBILE3_DIE2, S_EGGMOBILE3_DIE4, 0},  // S_EGGMOBILE3_DIE3
-	{SPR_EGGO,  9,  -1, {A_BossDeath},             0, 0, S_NULL, 0},               // S_EGGMOBILE3_DIE4
-	{SPR_EGGO, 10,   2, {A_BossScream},            0, 0, S_EGGMOBILE3_FLEE2, 0},   // S_EGGMOBILE3_FLEE1
-	{SPR_EGGO, 11,   2, {A_BossScream},            0, 0, S_EGGMOBILE3_FLEE1, 0},   // S_EGGMOBILE3_FLEE2
+	{SPR_EGGO,  0,   1, NULL,                    0, 0, S_EGGMOBILE3_STND, 0},    // S_EGGMOBILE3_STND
+	{SPR_EGGO,   FF_ANIMATE, 24, NULL, 1, 2, S_EGGMOBILE3_ATK2, 0},  // S_EGGMOBILE3_SHOCK
+	{SPR_EGGO, 6|FF_ANIMATE, 24, NULL, 1, 2, S_EGGMOBILE3_ATK2, 0}, // S_EGGMOBILE3_ATK1
+	{SPR_EGGO,  2,   2, NULL,                    0, 0, S_EGGMOBILE3_ATK3A, 0},   // S_EGGMOBILE3_ATK2
+	{SPR_EGGO,  3,   2, A_BossFireShot, MT_TORPEDO, 2, S_EGGMOBILE3_ATK3B, 0},   // S_EGGMOBILE3_ATK3A
+	{SPR_EGGO,  3,   2, A_BossFireShot, MT_TORPEDO, 4, S_EGGMOBILE3_ATK3C, 0},   // S_EGGMOBILE3_ATK3B
+	{SPR_EGGO,  3,   2, A_BossFireShot, MT_TORPEDO, 3, S_EGGMOBILE3_ATK3D, 0},   // S_EGGMOBILE3_ATK3C
+	{SPR_EGGO,  3,   2, A_BossFireShot, MT_TORPEDO, 5, S_EGGMOBILE3_ATK4, 0},    // S_EGGMOBILE3_ATK3D
+	{SPR_EGGO,  4,   2, NULL,                    0, 0, S_EGGMOBILE3_ATK5, 0},    // S_EGGMOBILE3_ATK4
+	{SPR_EGGO,  5,   2, NULL,                    0, 0, S_EGGMOBILE3_ROFL, 0},  // S_EGGMOBILE3_ATK5
+	{SPR_EGGO,  6|FF_ANIMATE, 60, NULL, 1, 2, S_EGGMOBILE3_STND, 0},  // S_EGGMOBILE3_ROFL
+	{SPR_EGGO,  8,   1, A_Boss3TakeDamage,       0, 0, S_EGGMOBILE3_PAIN2, 0},   // S_EGGMOBILE3_PAIN
+	{SPR_EGGO,  8,  23, A_Pain,                  0, 0, S_EGGMOBILE3_STND, 0},    // S_EGGMOBILE3_PAIN2
+	{SPR_EGGO,  9,   2, A_Fall,                  0, 0, S_EGGMOBILE3_DIE2, 0},    // S_EGGMOBILE3_DIE1
+	{SPR_EGGO,  9,   2, A_BossScream,            0, 0, S_EGGMOBILE3_DIE3, 0},    // S_EGGMOBILE3_DIE2
+	{SPR_EGGO,  9,   0, A_Repeat, 17, S_EGGMOBILE3_DIE2, S_EGGMOBILE3_DIE4, 0},  // S_EGGMOBILE3_DIE3
+	{SPR_EGGO,  9,  -1, A_BossDeath,             0, 0, S_NULL, 0},               // S_EGGMOBILE3_DIE4
+	{SPR_EGGO, 10,   2, A_BossScream,            0, 0, S_EGGMOBILE3_FLEE2, 0},   // S_EGGMOBILE3_FLEE1
+	{SPR_EGGO, 11,   2, A_BossScream,            0, 0, S_EGGMOBILE3_FLEE1, 0},   // S_EGGMOBILE3_FLEE2
 
 	// Boss 3 Pinch
-	{SPR_FAKE, 0,  1, {NULL},                     0, 0, S_FAKEMOBILE, 0},       // S_FAKEMOBILE_INIT
-	{SPR_FAKE, 0,  1, {A_Boss3Path},              0, 0, S_FAKEMOBILE, 0},       // S_FAKEMOBILE
-	{SPR_FAKE, 0, 22, {NULL},                     0, 0, S_FAKEMOBILE_ATK2, 0},  // S_FAKEMOBILE_ATK1
-	{SPR_FAKE, 0,  2, {NULL},                     0, 0, S_FAKEMOBILE_ATK3A, 0}, // S_FAKEMOBILE_ATK2
-	{SPR_FAKE, 0,  2, {A_BossFireShot}, MT_TORPEDO2, 2, S_FAKEMOBILE_ATK3B, 0}, // S_FAKEMOBILE_ATK3A
-	{SPR_FAKE, 0,  2, {A_BossFireShot}, MT_TORPEDO2, 4, S_FAKEMOBILE_ATK3C, 0}, // S_FAKEMOBILE_ATK3B
-	{SPR_FAKE, 0,  2, {A_BossFireShot}, MT_TORPEDO2, 3, S_FAKEMOBILE_ATK3D, 0}, // S_FAKEMOBILE_ATK3C
-	{SPR_FAKE, 0,  2, {A_BossFireShot}, MT_TORPEDO2, 5, S_FAKEMOBILE, 0},       // S_FAKEMOBILE_ATK3D
-	{SPR_FAKE, 1,  1, {NULL},                     0, 0, S_FAKEMOBILE_DIE2, 0},  // S_FAKEMOBILE_DIE1
-	{SPR_NULL, 0,  1, {NULL},                     0, 0, S_FAKEMOBILE_DIE1, 0},  // S_FAKEMOBILE_DIE2
-
-	{SPR_SEBH, 0, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSSEBH1
-	{SPR_SEBH, 1, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BOSSSEBH2
+	{SPR_FAKE, 0,  1, NULL,                     0, 0, S_FAKEMOBILE, 0},       // S_FAKEMOBILE_INIT
+	{SPR_FAKE, 0,  1, A_Boss3Path,              0, 0, S_FAKEMOBILE, 0},       // S_FAKEMOBILE
+	{SPR_FAKE, 0, 22, NULL,                     0, 0, S_FAKEMOBILE_ATK2, 0},  // S_FAKEMOBILE_ATK1
+	{SPR_FAKE, 0,  2, NULL,                     0, 0, S_FAKEMOBILE_ATK3A, 0}, // S_FAKEMOBILE_ATK2
+	{SPR_FAKE, 0,  2, A_BossFireShot, MT_TORPEDO2, 2, S_FAKEMOBILE_ATK3B, 0}, // S_FAKEMOBILE_ATK3A
+	{SPR_FAKE, 0,  2, A_BossFireShot, MT_TORPEDO2, 4, S_FAKEMOBILE_ATK3C, 0}, // S_FAKEMOBILE_ATK3B
+	{SPR_FAKE, 0,  2, A_BossFireShot, MT_TORPEDO2, 3, S_FAKEMOBILE_ATK3D, 0}, // S_FAKEMOBILE_ATK3C
+	{SPR_FAKE, 0,  2, A_BossFireShot, MT_TORPEDO2, 5, S_FAKEMOBILE, 0},       // S_FAKEMOBILE_ATK3D
+	{SPR_FAKE, 1,  1, NULL,                     0, 0, S_FAKEMOBILE_DIE2, 0},  // S_FAKEMOBILE_DIE1
+	{SPR_NULL, 0,  1, NULL,                     0, 0, S_FAKEMOBILE_DIE1, 0},  // S_FAKEMOBILE_DIE2
+
+	{SPR_SEBH, 0, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSSEBH1
+	{SPR_SEBH, 1, 35, NULL, 0, 0, S_NULL, 0}, // S_BOSSSEBH2
 
 	// Boss 3 Shockwave
 
-	{SPR_SHCK,   FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 8, {A_Boss3ShockThink}, 4, 2, S_SHOCKWAVE2, 0}, // S_SHOCKWAVE1
-	{SPR_SHCK, 3|FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 8, {A_Boss3ShockThink}, 4, 2, S_SHOCKWAVE1, 0}, // S_SHOCKWAVE2
+	{SPR_SHCK,   FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 8, A_Boss3ShockThink, 4, 2, S_SHOCKWAVE2, 0}, // S_SHOCKWAVE1
+	{SPR_SHCK, 3|FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 8, A_Boss3ShockThink, 4, 2, S_SHOCKWAVE1, 0}, // S_SHOCKWAVE2
 
 	// Boss 4
-	{SPR_EGGP, 0, -1, {NULL},           0,          0, S_NULL, 0},              // S_EGGMOBILE4_STND
-	{SPR_EGGP, 1,  3, {NULL},           0,          0, S_EGGMOBILE4_LATK2, 0},  // S_EGGMOBILE4_LATK1
-	{SPR_EGGP, 2, 15, {NULL},           0,          0, S_EGGMOBILE4_LATK3, 0},  // S_EGGMOBILE4_LATK2
-	{SPR_EGGP, 3,  2, {NULL},           0,          0, S_EGGMOBILE4_LATK4, 0},  // S_EGGMOBILE4_LATK3
-	{SPR_EGGP, 4,  2, {NULL},           0,          0, S_EGGMOBILE4_LATK5, 0},  // S_EGGMOBILE4_LATK4
-	{SPR_EGGP, 5, 50, {A_Boss4Reverse}, sfx_mswing, 0, S_EGGMOBILE4_LATK6, 0},  // S_EGGMOBILE4_LATK5
-	{SPR_EGGP, 6,  2, {NULL},           0,          0, S_EGGMOBILE4_STND, 0},   // S_EGGMOBILE4_LATK6
-	{SPR_EGGP, 7,  3, {NULL},           0,          0, S_EGGMOBILE4_RATK2, 0},  // S_EGGMOBILE4_RATK1
-	{SPR_EGGP, 8, 15, {NULL},           0,          0, S_EGGMOBILE4_RATK3, 0},  // S_EGGMOBILE4_RATK2
-	{SPR_EGGP, 9,  2, {NULL},           0,          0, S_EGGMOBILE4_RATK4, 0},  // S_EGGMOBILE4_RATK3
-	{SPR_EGGP,10,  2, {NULL},           0,          0, S_EGGMOBILE4_RATK5, 0},  // S_EGGMOBILE4_RATK4
-	{SPR_EGGP,11,150, {A_Boss4SpeedUp}, sfx_mswing, 0, S_EGGMOBILE4_RATK6, 0},  // S_EGGMOBILE4_RATK5
-	{SPR_EGGP,12,  2, {NULL},           0,          0, S_EGGMOBILE4_STND, 0},   // S_EGGMOBILE4_RATK6
-	{SPR_EGGP,13, 20, {A_Boss4Raise},   sfx_doord1, 0, S_EGGMOBILE4_RAISE2, 0}, // S_EGGMOBILE4_RAISE1
-	{SPR_EGGP,15|FF_ANIMATE, -1, {NULL},        1,        10, S_NULL, 0},             // S_EGGMOBILE4_RAISE2
-	{SPR_EGGP,13,  0, {A_Boss4Reverse}, sfx_alarm, sfx_s3k60, S_EGGMOBILE4_PAIN2, 0}, // S_EGGMOBILE4_PAIN1
-	{SPR_EGGP,13, 24, {A_Pain},                 0,         0, S_EGGMOBILE4_STND, 0},  // S_EGGMOBILE4_PAIN2
-	{SPR_EGGP,14,  2, {A_Fall},         0,          0, S_EGGMOBILE4_DIE2, 0},   // S_EGGMOBILE4_DIE1
-	{SPR_EGGP,14,  2, {A_BossScream},   0,          0, S_EGGMOBILE4_DIE3, 0},   // S_EGGMOBILE4_DIE2
-	{SPR_EGGP,14,  0, {A_Repeat},   17, S_EGGMOBILE4_DIE2, S_EGGMOBILE4_DIE4, 0},   // S_EGGMOBILE4_DIE3
-	{SPR_EGGP,14, -1, {A_BossDeath},    0,          0, S_NULL, 0},              // S_EGGMOBILE4_DIE4
-	{SPR_EGGP,15,  2, {A_BossScream},   0,          0, S_EGGMOBILE4_FLEE2, 0},  // S_EGGMOBILE4_FLEE1
-	{SPR_EGGP,16,  2, {A_BossScream},   0,          0, S_EGGMOBILE4_FLEE1, 0},  // S_EGGMOBILE4_FLEE2
-	{SPR_BMCE, 0, -1, {NULL},           0,          0, S_NULL, 0},              // S_EGGMOBILE4_MACE
-	{SPR_BMCE, 0,  2, {A_BossScream},   1, 0, S_EGGMOBILE4_MACE_DIE2, 0},  // S_EGGMOBILE4_MACE_DIE1
-	{SPR_NULL, 0,  2, {A_BossScream},   1, 0, S_EGGMOBILE4_MACE_DIE3, 0},  // S_EGGMOBILE4_MACE_DIE2
-	{SPR_NULL, 0,  0, {A_Repeat},       7, S_EGGMOBILE4_MACE_DIE1, S_SONIC3KBOSSEXPLOSION1, 0}, // S_EGGMOBILE4_MACE_DIE3
+	{SPR_EGGP, 0, -1, NULL,           0,          0, S_NULL, 0},              // S_EGGMOBILE4_STND
+	{SPR_EGGP, 1,  3, NULL,           0,          0, S_EGGMOBILE4_LATK2, 0},  // S_EGGMOBILE4_LATK1
+	{SPR_EGGP, 2, 15, NULL,           0,          0, S_EGGMOBILE4_LATK3, 0},  // S_EGGMOBILE4_LATK2
+	{SPR_EGGP, 3,  2, NULL,           0,          0, S_EGGMOBILE4_LATK4, 0},  // S_EGGMOBILE4_LATK3
+	{SPR_EGGP, 4,  2, NULL,           0,          0, S_EGGMOBILE4_LATK5, 0},  // S_EGGMOBILE4_LATK4
+	{SPR_EGGP, 5, 50, A_Boss4Reverse, sfx_mswing, 0, S_EGGMOBILE4_LATK6, 0},  // S_EGGMOBILE4_LATK5
+	{SPR_EGGP, 6,  2, NULL,           0,          0, S_EGGMOBILE4_STND, 0},   // S_EGGMOBILE4_LATK6
+	{SPR_EGGP, 7,  3, NULL,           0,          0, S_EGGMOBILE4_RATK2, 0},  // S_EGGMOBILE4_RATK1
+	{SPR_EGGP, 8, 15, NULL,           0,          0, S_EGGMOBILE4_RATK3, 0},  // S_EGGMOBILE4_RATK2
+	{SPR_EGGP, 9,  2, NULL,           0,          0, S_EGGMOBILE4_RATK4, 0},  // S_EGGMOBILE4_RATK3
+	{SPR_EGGP,10,  2, NULL,           0,          0, S_EGGMOBILE4_RATK5, 0},  // S_EGGMOBILE4_RATK4
+	{SPR_EGGP,11,150, A_Boss4SpeedUp, sfx_mswing, 0, S_EGGMOBILE4_RATK6, 0},  // S_EGGMOBILE4_RATK5
+	{SPR_EGGP,12,  2, NULL,           0,          0, S_EGGMOBILE4_STND, 0},   // S_EGGMOBILE4_RATK6
+	{SPR_EGGP,13, 20, A_Boss4Raise,   sfx_doord1, 0, S_EGGMOBILE4_RAISE2, 0}, // S_EGGMOBILE4_RAISE1
+	{SPR_EGGP,15|FF_ANIMATE, -1, NULL,        1,        10, S_NULL, 0},             // S_EGGMOBILE4_RAISE2
+	{SPR_EGGP,13,  0, A_Boss4Reverse, sfx_alarm, sfx_s3k60, S_EGGMOBILE4_PAIN2, 0}, // S_EGGMOBILE4_PAIN1
+	{SPR_EGGP,13, 24, A_Pain,                 0,         0, S_EGGMOBILE4_STND, 0},  // S_EGGMOBILE4_PAIN2
+	{SPR_EGGP,14,  2, A_Fall,         0,          0, S_EGGMOBILE4_DIE2, 0},   // S_EGGMOBILE4_DIE1
+	{SPR_EGGP,14,  2, A_BossScream,   0,          0, S_EGGMOBILE4_DIE3, 0},   // S_EGGMOBILE4_DIE2
+	{SPR_EGGP,14,  0, A_Repeat,   17, S_EGGMOBILE4_DIE2, S_EGGMOBILE4_DIE4, 0},   // S_EGGMOBILE4_DIE3
+	{SPR_EGGP,14, -1, A_BossDeath,    0,          0, S_NULL, 0},              // S_EGGMOBILE4_DIE4
+	{SPR_EGGP,15,  2, A_BossScream,   0,          0, S_EGGMOBILE4_FLEE2, 0},  // S_EGGMOBILE4_FLEE1
+	{SPR_EGGP,16,  2, A_BossScream,   0,          0, S_EGGMOBILE4_FLEE1, 0},  // S_EGGMOBILE4_FLEE2
+	{SPR_BMCE, 0, -1, NULL,           0,          0, S_NULL, 0},              // S_EGGMOBILE4_MACE
+	{SPR_BMCE, 0,  2, A_BossScream,   1, 0, S_EGGMOBILE4_MACE_DIE2, 0},  // S_EGGMOBILE4_MACE_DIE1
+	{SPR_NULL, 0,  2, A_BossScream,   1, 0, S_EGGMOBILE4_MACE_DIE3, 0},  // S_EGGMOBILE4_MACE_DIE2
+	{SPR_NULL, 0,  0, A_Repeat,       7, S_EGGMOBILE4_MACE_DIE1, S_SONIC3KBOSSEXPLOSION1, 0}, // S_EGGMOBILE4_MACE_DIE3
 
 	// Boss 4 jet flame
-	{SPR_EFIR, FF_FULLBRIGHT|FF_ANIMATE, -1, {NULL}, 1, 1, S_NULL, 0}, // S_JETFLAME
+	{SPR_EFIR, FF_FULLBRIGHT|FF_ANIMATE, -1, NULL, 1, 1, S_NULL, 0}, // S_JETFLAME
 
 	// Boss 4 Spectator Eggrobo
-	{SPR_EGR1,            0, -1, {NULL}, 0, 0, S_NULL, 0},            // S_EGGROBO1_STND
-	{SPR_EGR1,            5,  2, {NULL}, 0, 0, S_EGGROBO1_BSLAP2, 0}, // S_EGGROBO1_BSLAP1
-	{SPR_EGR1, FF_ANIMATE|6, 35, {NULL}, 1, 2, S_EGGROBO1_STND, 0},   // S_EGGROBO1_BSLAP2
-	{SPR_EGR1, FF_ANIMATE|3, -1, {NULL}, 1, 2, S_NULL, 0},            // S_EGGROBO1_PISSED
+	{SPR_EGR1,            0, -1, NULL, 0, 0, S_NULL, 0},            // S_EGGROBO1_STND
+	{SPR_EGR1,            5,  2, NULL, 0, 0, S_EGGROBO1_BSLAP2, 0}, // S_EGGROBO1_BSLAP1
+	{SPR_EGR1, FF_ANIMATE|6, 35, NULL, 1, 2, S_EGGROBO1_STND, 0},   // S_EGGROBO1_BSLAP2
+	{SPR_EGR1, FF_ANIMATE|3, -1, NULL, 1, 2, S_NULL, 0},            // S_EGGROBO1_PISSED
 
 	// Boss 4 Spectator Eggrobo jet flame
-	{SPR_EFIR, FF_FULLBRIGHT|2,          -1, {NULL}, 0, 0, S_NULL, 0}, // S_EGGROBOJET
+	{SPR_EFIR, FF_FULLBRIGHT|2,          -1, NULL, 0, 0, S_NULL, 0}, // S_EGGROBOJET
 
 	// Boss 5
-	{SPR_NULL, 0, 2, {A_CheckFlags2}, MF2_AMBUSH, S_FANG_IDLE0, S_FANG_INTRO0, 0}, // S_FANG_SETUP
-
-	{SPR_NULL,         0, 2, {NULL}, 0, 0, S_FANG_INTRO1, 0}, // S_FANG_INTRO0
-	{SPR_NULL,         0, 2, {A_Boss5MakeJunk}, -S_FANG_CLONE1, 0, S_FANG_INTRO2, 0}, // S_FANG_INTRO1
-	{SPR_NULL,         0, 0, {A_Repeat}, 25, S_FANG_INTRO1, S_FANG_INTRO3, 0}, // S_FANG_INTRO2
-	{SPR_NULL,         0, 0, {A_Boss5MakeJunk}, 0, 1, S_FANG_INTRO4, 0}, // S_FANG_INTRO3
-	{SPR_PLAY, SPR2_ROLL, 1, {A_ZThrust}, 9, (1<<16)|1, S_FANG_INTRO5, 0}, // S_FANG_INTRO4
-	{SPR_PLAY, SPR2_ROLL, 1, {A_Boss5CheckOnGround}, S_FANG_INTRO9, 0, S_FANG_INTRO6, 0}, // S_FANG_INTRO5
-	{SPR_PLAY, SPR2_ROLL, 1, {A_Boss5CheckOnGround}, S_FANG_INTRO9, 0, S_FANG_INTRO7, 0}, // S_FANG_INTRO6
-	{SPR_PLAY, SPR2_ROLL, 1, {A_Boss5CheckOnGround}, S_FANG_INTRO9, 0, S_FANG_INTRO8, 0}, // S_FANG_INTRO7
-	{SPR_PLAY, SPR2_ROLL, 1, {A_Boss5CheckOnGround}, S_FANG_INTRO9, 0, S_FANG_INTRO5, 0}, // S_FANG_INTRO8
-	{SPR_PLAY, SPR2_MSC0|FF_ANIMATE, 50, {NULL}, 0, 4, S_FANG_INTRO10, 0}, // S_FANG_INTRO9
-	{SPR_PLAY, SPR2_MSC1, 5, {NULL}, 0, 0, S_FANG_INTRO11, 0}, // S_FANG_INTRO10
-	{SPR_PLAY, SPR2_MSC2, 2, {A_Boss5MakeJunk}, S_BROKENROBOTD, 2, S_FANG_INTRO12, 0}, // S_FANG_INTRO11
-	{SPR_PLAY, SPR2_CNT1|FF_ANIMATE, 50, {NULL}, 0, 4, S_FANG_IDLE1, 0}, // S_FANG_INTRO12
-
-	{SPR_PLAY, SPR2_SPNG, 2, {A_Boss5MakeJunk}, 0, -1, S_FANG_CLONE2, 0}, // S_FANG_CLONE1
-	{SPR_PLAY, SPR2_SPNG, 0, {A_Repeat}, 49, S_FANG_CLONE1, S_FANG_CLONE3, 0}, // S_FANG_CLONE2
-	{SPR_PLAY, SPR2_FALL, 0, {A_SetObjectFlags}, MF_NOGRAVITY, 1, S_FANG_CLONE4, 0}, // S_FANG_CLONE3
-	{SPR_PLAY, SPR2_FALL, 1, {A_Boss5CheckOnGround}, S_FANG_IDLE0, 0, S_FANG_CLONE4, 0}, // S_FANG_CLONE4
-
-	{SPR_PLAY,         0,  0, {A_SetObjectFlags}, MF_NOCLIPTHING, 1, S_FANG_IDLE1, 0}, // S_FANG_IDLE0
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE2, 0}, // S_FANG_IDLE1
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE3, 0}, // S_FANG_IDLE2
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE4, 0}, // S_FANG_IDLE3
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE5, 0}, // S_FANG_IDLE4
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE6, 0}, // S_FANG_IDLE5
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE7, 0}, // S_FANG_IDLE6
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE8, 0}, // S_FANG_IDLE7
-	{SPR_PLAY, SPR2_WAIT, 16, {A_Look}, 1, 0, S_FANG_IDLE1, 0}, // S_FANG_IDLE8
-
-	{SPR_PLAY,         0, 0, {A_DoNPCPain}, FRACUNIT, 0, S_FANG_PAIN2, 0}, // S_FANG_PAIN1
-	{SPR_PLAY, SPR2_PAIN, 1, {A_Boss5CheckOnGround}, S_FANG_PATHINGSTART1, S_FANG_PINCHPATHINGSTART1, S_FANG_PAIN2, 0}, // S_FANG_PAIN2
-
-	{SPR_PLAY,         0, 0, {A_Boss5ExtraRepeat}, 5, 4, S_FANG_PATHINGSTART2, 0}, // S_FANG_PATHINGSTART1
-	{SPR_PLAY,         0, 0, {A_PlayActiveSound}, 0, 0, S_FANG_PATHING, 0}, // S_FANG_PATHINGSTART2
-	{SPR_PLAY,         0, 0, {A_Boss5FindWaypoint}, 0, 0, S_FANG_BOUNCE1, 0}, // S_FANG_PATHING
-
-	{SPR_PLAY, SPR2_LAND, 2, {A_Thrust}, 0, 1, S_FANG_BOUNCE2, 0}, // S_FANG_BOUNCE1
-	{SPR_PLAY, SPR2_LAND, 2, {NULL}, 0, 0, S_FANG_BOUNCE3, 0}, // S_FANG_BOUNCE2
-	{SPR_PLAY, SPR2_LAND, 1, {A_Boss5Jump}, 0, 0, S_FANG_BOUNCE4, 0}, // S_FANG_BOUNCE3
-	{SPR_PLAY, SPR2_BNCE, 1, {A_Boss5CheckFalling}, S_FANG_CHECKPATH1, S_FANG_FALL1, S_FANG_BOUNCE4, 0}, // S_FANG_BOUNCE4
-
-	{SPR_PLAY, SPR2_FALL, 1, {A_Boss5CheckOnGround}, S_FANG_CHECKPATH1, 0, S_FANG_FALL2, 0}, // S_FANG_FALL1
-	{SPR_PLAY, SPR2_FALL, 1, {A_Boss5CheckOnGround}, S_FANG_CHECKPATH1, 0, S_FANG_FALL1, 0}, // S_FANG_FALL2
-
-	{SPR_PLAY,         0, 0, {A_Boss5Calm}, 0, 0, S_FANG_CHECKPATH2, 0}, // S_FANG_CHECKPATH1
-	{SPR_PLAY,         0, 0, {A_Repeat}, 0, S_FANG_PATHINGCONT1, S_FANG_SKID1, 0}, // S_FANG_CHECKPATH2
-
-	{SPR_PLAY,         0, 0, {A_Boss5PinchShot}, MT_FBOMB, -16, S_FANG_PATHINGCONT2, 0}, // S_FANG_PATHINGCONT1
-	{SPR_PLAY,         0, 0, {A_PlayActiveSound}, 0, 0, S_FANG_PATHINGCONT3, 0}, // S_FANG_PATHINGCONT2
-	{SPR_PLAY, SPR2_LAND, 2, {A_Thrust}, 0, 1, S_FANG_PATHING, 0}, // S_FANG_PATHINGCONT3
-
-	{SPR_PLAY,         0,  0, {A_PlayAttackSound}, 0, 0, S_FANG_SKID2, 0}, // S_FANG_SKID1
-	{SPR_PLAY, SPR2_SKID,  1, {A_DoNPCSkid}, S_FANG_SKID3, 0, S_FANG_SKID2, 0}, // S_FANG_SKID2
-	{SPR_PLAY, SPR2_SKID, 10, {NULL}, 0, 0, S_FANG_CHOOSEATTACK, 0}, // S_FANG_SKID3
-
-	{SPR_PLAY,         0, 0, {A_RandomState}, S_FANG_LOBSHOT0, S_FANG_FIRESTART1, S_NULL, 0}, // S_FANG_CHOOSEATTACK
-
-	{SPR_PLAY,         0,  0, {A_PrepareRepeat}, 3, 0, S_FANG_FIRESTART2, 0}, // S_FANG_FIRESTART1 // Reset loop
-	{SPR_PLAY, SPR2_FIRE, 18, {A_LookForBetter}, 1, 0, S_FANG_FIRE1, 0}, // S_FANG_FIRESTART2
-	{SPR_PLAY, SPR2_FIRE,  2, {A_FireShot}, MT_CORK, -16, S_FANG_FIRE2, 0}, // S_FANG_FIRE1 // Start of loop
-	{SPR_PLAY, SPR2_FIRE,  2, {NULL}, 0, 0, S_FANG_FIRE3, 0}, // S_FANG_FIRE2
-	{SPR_PLAY, SPR2_FIRE, 16, {NULL}, 0, 0, S_FANG_FIREREPEAT, 0}, // S_FANG_FIRE3
-	{SPR_PLAY,         0,  0, {A_Repeat}, 3, S_FANG_FIRE1, S_FANG_WAIT1, 0}, // S_FANG_FIREREPEAT // End of loop
-
-	{SPR_PLAY, SPR2_MSC3, 14, {A_LookForBetter}, 1, 0, S_FANG_LOBSHOT1, 0}, // S_FANG_LOBSHOT0
-	{SPR_PLAY, SPR2_MSC3,  2, {A_LookForBetter}, 1, 0, S_FANG_LOBSHOT2, 0}, // S_FANG_LOBSHOT1
-	{SPR_PLAY, SPR2_MSC3,  2, {A_LookForBetter}, 1, 0, S_FANG_LOBSHOT3, 0}, // S_FANG_LOBSHOT2
-	{SPR_PLAY, SPR2_MSC3, 18, {A_BrakLobShot}, MT_FBOMB, 32+(1<<16), S_FANG_WAIT1, 0}, // S_FANG_LOBSHOT3
-
-	{SPR_PLAY, SPR2_MLEL|FF_ANIMATE, 70, {NULL}, 0, 5, S_FANG_WAIT2, 0}, // S_FANG_WAIT1
-	{SPR_PLAY,            SPR2_STND, 35, {A_Look}, 1, 0, S_FANG_IDLE1, 0}, // S_FANG_WAIT2
-
-	{SPR_PLAY, SPR2_FALL, 1, {A_Boss5CheckOnGround}, S_FANG_PATHINGSTART2, S_FANG_PINCHPATHINGSTART1, S_FANG_WALLHIT, 0}, // S_FANG_WALLHIT
-
-	{SPR_PLAY,         0,  0, {A_PrepareRepeat}, 1, 0, S_FANG_PINCHPATHINGSTART2, 0}, // S_FANG_PINCHPATHINGSTART1
-	{SPR_PLAY,         0,  0, {A_PlayActiveSound}, 0, 0, S_FANG_PINCHPATHING, 0}, // S_FANG_PINCHPATHINGSTART2
-	{SPR_PLAY,         0,  0, {A_Boss5FindWaypoint}, 1, 0, S_FANG_PINCHBOUNCE0, 0}, // S_FANG_PINCHPATHING
-	{SPR_PLAY,         0,  0, {A_SetObjectFlags}, MF_NOCLIP|MF_NOCLIPHEIGHT, 2, S_FANG_PINCHBOUNCE1, 0}, // S_FANG_PINCHBOUNCE0
-	{SPR_PLAY, SPR2_LAND,  2, {A_Thrust}, 0, 1, S_FANG_PINCHBOUNCE2, 0}, // S_FANG_PINCHBOUNCE1
-	{SPR_PLAY, SPR2_LAND,  2, {NULL}, 0, 0, S_FANG_PINCHBOUNCE3, 0}, // S_FANG_PINCHBOUNCE2
-	{SPR_PLAY, SPR2_LAND,  2, {A_Boss5Jump}, 0, 0, S_FANG_PINCHBOUNCE4, 0}, // S_FANG_PINCHBOUNCE3
-	{SPR_PLAY, SPR2_BNCE,  1, {A_Boss5CheckFalling}, S_FANG_PINCHSKID1, S_FANG_PINCHFALL0, S_FANG_PINCHBOUNCE4, 0}, // S_FANG_PINCHBOUNCE4
-	{SPR_PLAY,         0,  0, {A_SetObjectFlags}, MF_NOCLIP|MF_NOCLIPHEIGHT, 1, S_FANG_PINCHFALL1, 0}, // S_FANG_PINCHFALL0
-	{SPR_PLAY, SPR2_FALL,  1, {A_Boss5CheckOnGround}, S_FANG_PINCHSKID1, 0, S_FANG_PINCHFALL2, 0}, // S_FANG_PINCHFALL1
-	{SPR_PLAY, SPR2_FALL,  1, {A_Boss5CheckOnGround}, S_FANG_PINCHSKID1, 0, S_FANG_PINCHFALL1, 0}, // S_FANG_PINCHFALL2
-	{SPR_PLAY,         0,  0, {A_PlayAttackSound}, 0, 0, S_FANG_PINCHSKID2, 0}, // S_FANG_PINCHSKID1
-	{SPR_PLAY, SPR2_SKID,  1, {A_DoNPCSkid}, S_FANG_PINCHLOBSHOT0, 0, S_FANG_PINCHSKID2, 0}, // S_FANG_PINCHSKID2
-	{SPR_PLAY, SPR2_MSC3, 16, {A_FaceTarget}, 1, 5, S_FANG_PINCHLOBSHOT1, 0}, // S_FANG_PINCHLOBSHOT0
-	{SPR_PLAY, SPR2_MSC3,  2, {A_FaceTarget}, 3, 0, S_FANG_PINCHLOBSHOT2, 0}, // S_FANG_PINCHLOBSHOT1
-	{SPR_PLAY, SPR2_MSC3,  2, {A_FaceTarget}, 3, 0, S_FANG_PINCHLOBSHOT3, 0}, // S_FANG_PINCHLOBSHOT2
-	{SPR_PLAY, SPR2_MSC3, 30, {A_Boss5MakeItRain}, MT_FBOMB, -16, S_FANG_PINCHLOBSHOT4, 0}, // S_FANG_PINCHLOBSHOT3
-	{SPR_PLAY, SPR2_STND, 18, {A_LinedefExecuteFromArg}, 4, 0, S_FANG_PINCHLOBSHOT5, 0}, // S_FANG_PINCHLOBSHOT4
-	{SPR_PLAY,         0,  0, {A_Boss5Calm}, 0, 0, S_FANG_PATHINGSTART1, 0}, // S_FANG_PINCHLOBSHOT5
-
-	{SPR_PLAY,         0, 0, {A_DoNPCPain},                    0, 0, S_FANG_DIE2, 0}, // S_FANG_DIE1
-	{SPR_PLAY, SPR2_MSC4, 1, {A_Boss5CheckOnGround}, S_FANG_DIE3, 0, S_FANG_DIE2, 0}, // S_FANG_DIE2
-
-	{SPR_PLAY,         0,  0, {A_Scream}, 0, 0, S_FANG_DIE4, 0}, // S_FANG_DIE3
-	{SPR_PLAY, SPR2_MSC5, -1, {A_SetFuse}, 70, 0, S_FANG_DIE5, 0}, // S_FANG_DIE4
-
-	{SPR_PLAY,         0, 0, {A_PlaySound}, sfx_jump, 0, S_FANG_DIE6, 0}, // S_FANG_DIE5
-	{SPR_PLAY, SPR2_JUMP, 1, {A_ZThrust}, 6, (1<<16)|1, S_FANG_DIE7, 0}, // S_FANG_DIE6
-	{SPR_PLAY, SPR2_JUMP, 1, {A_Boss5CheckFalling}, S_FANG_FLEEPATHING1, S_FANG_DIE8, S_FANG_DIE7, 0}, // S_FANG_DIE7
-	{SPR_PLAY, SPR2_FALL, 1, {A_Boss5CheckOnGround}, S_FANG_FLEEPATHING1, 0, S_FANG_DIE8, 0}, // S_FANG_DIE8
-
-	{SPR_PLAY,         0,  0, {A_PlayActiveSound}, 0, 0, S_FANG_FLEEPATHING2, 0}, // S_FANG_FLEEPATHING1
-	{SPR_PLAY, SPR2_LAND,  2, {A_Boss5FindWaypoint}, 2, 0, S_FANG_FLEEBOUNCE1, 0}, // S_FANG_FLEEPATHING2
-	{SPR_PLAY, SPR2_LAND,  2, {NULL}, 0, 0, S_FANG_FLEEBOUNCE2, 0}, // S_FANG_FLEEBOUNCE1
-	{SPR_PLAY, SPR2_LAND, -1, {A_BossDeath}, 0, 0, S_NULL, 0}, // S_FANG_FLEEBOUNCE2
-
-	{SPR_PLAY, SPR2_DEAD, 7*TICRATE, {NULL}, 0, 0, S_NULL, 0}, // S_FANG_KO
-
-	{SPR_NULL, 0, -1, {A_RandomStateRange}, S_BROKENROBOTA, S_BROKENROBOTF, S_NULL, 0}, // S_BROKENROBOTRANDOM
-	{SPR_BRKN,    FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTA
-	{SPR_BRKN,  4|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTB
-	{SPR_BRKN,  8|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTC
-	{SPR_BRKN, 12|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTD
-	{SPR_BRKN, 16|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTE
-	{SPR_BRKN, 20|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 3, 4, S_NULL, 0}, // S_BROKENROBOTF
-
-	{SPR_WHAT,   FF_ANIMATE|FF_FULLBRIGHT,  4, {NULL}, 1, 2, S_ALART2, 0}, // S_ALART1
-	{SPR_WHAT, 2|FF_ANIMATE|FF_FULLBRIGHT, -1, {NULL}, 1, 2, S_NULL, 0},   // S_ALART2
-
-	{SPR_VWRE,   FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_VWREF
-	{SPR_VWRE, 1|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_VWREB
-
-	{SPR_PROJ,   FF_TRANS20|FF_FULLBRIGHT,  4, {NULL}, 0, 0, S_PROJECTORLIGHT2, 0}, // S_PROJECTORLIGHT1
-	{SPR_PROJ, 1|FF_TRANS40|FF_FULLBRIGHT,  1, {NULL}, 0, 0, S_PROJECTORLIGHT3, 0}, // S_PROJECTORLIGHT2
-	{SPR_PROJ, 2|FF_TRANS20|FF_FULLBRIGHT,  1, {NULL}, 0, 0, S_PROJECTORLIGHT4, 0}, // S_PROJECTORLIGHT3
-	{SPR_PROJ, 3|FF_TRANS40|FF_FULLBRIGHT,  2, {A_Repeat}, 39, S_PROJECTORLIGHT2, S_PROJECTORLIGHT5, 0}, // S_PROJECTORLIGHT4
-	{SPR_PROJ, 4|FF_TRANS60|FF_FULLBRIGHT,  2, {NULL}, 0, 0, S_NULL, 0}, // S_PROJECTORLIGHT5
-
-	{SPR_FBOM, 0, 1, {A_GhostMe}, 0, 0, S_FBOMB2, 0}, // S_FBOMB1
-	{SPR_FBOM, 1, 1, {A_GhostMe}, 0, 0, S_FBOMB1, 0}, // S_FBOMB2
-	{SPR_BARX, 0|FF_FULLBRIGHT, 3, {A_SetObjectFlags}, MF_NOCLIP|MF_NOGRAVITY|MF_NOBLOCKMAP, 0, S_FBOMB_EXPL2, 0}, // S_FBOMB_EXPL1
-	{SPR_BARX, 1|FF_FULLBRIGHT, 2, {A_Boss5BombExplode}, MT_TNTDUST, 0, S_FBOMB_EXPL3, 0}, // S_FBOMB_EXPL2
-	{SPR_BARX, 1|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_FBOMB_EXPL4, 0}, // S_FBOMB_EXPL3
-	{SPR_BARX, 2|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_FBOMB_EXPL5, 0}, // S_FBOMB_EXPL4
-	{SPR_BARX, 3|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_FBOMB_EXPL6, 0}, // S_FBOMB_EXPL5
-	{SPR_NULL, 0, 2*TICRATE, {NULL}, 0, 0, S_NULL, 0}, // S_FBOMB_EXPL6
-	{SPR_BARD, 0|FF_TRANS90, 2, {NULL}, 0, 0, S_TNTDUST_2, 0}, // S_TNTDUST_1
-	{SPR_BARD, 0|FF_TRANS30, 2*TICRATE, {A_SetRandomTics}, 2, TICRATE, S_TNTDUST_3, 0}, // S_TNTDUST_2
-	{SPR_BARD, 0|FF_TRANS40, 10, {NULL}, 0, 0, S_TNTDUST_4, 0}, // S_TNTDUST_3
-	{SPR_BARD, 0|FF_TRANS50, 10, {NULL}, 0, 0, S_TNTDUST_5, 0}, // S_TNTDUST_4
-	{SPR_BARD, 0|FF_TRANS60, 10, {NULL}, 0, 0, S_TNTDUST_6, 0}, // S_TNTDUST_5
-	{SPR_BARD, 0|FF_TRANS70, 10, {NULL}, 0, 0, S_TNTDUST_7, 0}, // S_TNTDUST_6
-	{SPR_BARD, 0|FF_TRANS80, 10, {NULL}, 0, 0, S_TNTDUST_8, 0}, // S_TNTDUST_7
-	{SPR_BARD, 0|FF_TRANS90, 10, {NULL}, 0, 0, S_NULL, 0}, // S_TNTDUST_8
-	{SPR_FSGN, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FSGNA
-	{SPR_FSGN, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FSGNB
-	{SPR_FSGN, 2|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FSGNC
-	{SPR_FSGN, 3|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FSGND
+	{SPR_NULL, 0, 2, A_CheckFlags2, MF2_AMBUSH, S_FANG_IDLE0, S_FANG_INTRO0, 0}, // S_FANG_SETUP
+
+	{SPR_NULL,         0, 2, NULL, 0, 0, S_FANG_INTRO1, 0}, // S_FANG_INTRO0
+	{SPR_NULL,         0, 2, A_Boss5MakeJunk, -S_FANG_CLONE1, 0, S_FANG_INTRO2, 0}, // S_FANG_INTRO1
+	{SPR_NULL,         0, 0, A_Repeat, 25, S_FANG_INTRO1, S_FANG_INTRO3, 0}, // S_FANG_INTRO2
+	{SPR_NULL,         0, 0, A_Boss5MakeJunk, 0, 1, S_FANG_INTRO4, 0}, // S_FANG_INTRO3
+	{SPR_PLAY, SPR2_ROLL, 1, A_ZThrust, 9, (1<<16)|1, S_FANG_INTRO5, 0}, // S_FANG_INTRO4
+	{SPR_PLAY, SPR2_ROLL, 1, A_Boss5CheckOnGround, S_FANG_INTRO9, 0, S_FANG_INTRO6, 0}, // S_FANG_INTRO5
+	{SPR_PLAY, SPR2_ROLL, 1, A_Boss5CheckOnGround, S_FANG_INTRO9, 0, S_FANG_INTRO7, 0}, // S_FANG_INTRO6
+	{SPR_PLAY, SPR2_ROLL, 1, A_Boss5CheckOnGround, S_FANG_INTRO9, 0, S_FANG_INTRO8, 0}, // S_FANG_INTRO7
+	{SPR_PLAY, SPR2_ROLL, 1, A_Boss5CheckOnGround, S_FANG_INTRO9, 0, S_FANG_INTRO5, 0}, // S_FANG_INTRO8
+	{SPR_PLAY, SPR2_MSC0|FF_ANIMATE, 50, NULL, 0, 4, S_FANG_INTRO10, 0}, // S_FANG_INTRO9
+	{SPR_PLAY, SPR2_MSC1, 5, NULL, 0, 0, S_FANG_INTRO11, 0}, // S_FANG_INTRO10
+	{SPR_PLAY, SPR2_MSC2, 2, A_Boss5MakeJunk, S_BROKENROBOTD, 2, S_FANG_INTRO12, 0}, // S_FANG_INTRO11
+	{SPR_PLAY, SPR2_CNT1|FF_ANIMATE, 50, NULL, 0, 4, S_FANG_IDLE1, 0}, // S_FANG_INTRO12
+
+	{SPR_PLAY, SPR2_SPNG, 2, A_Boss5MakeJunk, 0, -1, S_FANG_CLONE2, 0}, // S_FANG_CLONE1
+	{SPR_PLAY, SPR2_SPNG, 0, A_Repeat, 49, S_FANG_CLONE1, S_FANG_CLONE3, 0}, // S_FANG_CLONE2
+	{SPR_PLAY, SPR2_FALL, 0, A_SetObjectFlags, MF_NOGRAVITY, 1, S_FANG_CLONE4, 0}, // S_FANG_CLONE3
+	{SPR_PLAY, SPR2_FALL, 1, A_Boss5CheckOnGround, S_FANG_IDLE0, 0, S_FANG_CLONE4, 0}, // S_FANG_CLONE4
+
+	{SPR_PLAY,         0,  0, A_SetObjectFlags, MF_NOCLIPTHING, 1, S_FANG_IDLE1, 0}, // S_FANG_IDLE0
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE2, 0}, // S_FANG_IDLE1
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE3, 0}, // S_FANG_IDLE2
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE4, 0}, // S_FANG_IDLE3
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE5, 0}, // S_FANG_IDLE4
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE6, 0}, // S_FANG_IDLE5
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE7, 0}, // S_FANG_IDLE6
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE8, 0}, // S_FANG_IDLE7
+	{SPR_PLAY, SPR2_WAIT, 16, A_Look, 1, 0, S_FANG_IDLE1, 0}, // S_FANG_IDLE8
+
+	{SPR_PLAY,         0, 0, A_DoNPCPain, FRACUNIT, 0, S_FANG_PAIN2, 0}, // S_FANG_PAIN1
+	{SPR_PLAY, SPR2_PAIN, 1, A_Boss5CheckOnGround, S_FANG_PATHINGSTART1, S_FANG_PINCHPATHINGSTART1, S_FANG_PAIN2, 0}, // S_FANG_PAIN2
+
+	{SPR_PLAY,         0, 0, A_Boss5ExtraRepeat, 5, 4, S_FANG_PATHINGSTART2, 0}, // S_FANG_PATHINGSTART1
+	{SPR_PLAY,         0, 0, A_PlayActiveSound, 0, 0, S_FANG_PATHING, 0}, // S_FANG_PATHINGSTART2
+	{SPR_PLAY,         0, 0, A_Boss5FindWaypoint, 0, 0, S_FANG_BOUNCE1, 0}, // S_FANG_PATHING
+
+	{SPR_PLAY, SPR2_LAND, 2, A_Thrust, 0, 1, S_FANG_BOUNCE2, 0}, // S_FANG_BOUNCE1
+	{SPR_PLAY, SPR2_LAND, 2, NULL, 0, 0, S_FANG_BOUNCE3, 0}, // S_FANG_BOUNCE2
+	{SPR_PLAY, SPR2_LAND, 1, A_Boss5Jump, 0, 0, S_FANG_BOUNCE4, 0}, // S_FANG_BOUNCE3
+	{SPR_PLAY, SPR2_BNCE, 1, A_Boss5CheckFalling, S_FANG_CHECKPATH1, S_FANG_FALL1, S_FANG_BOUNCE4, 0}, // S_FANG_BOUNCE4
+
+	{SPR_PLAY, SPR2_FALL, 1, A_Boss5CheckOnGround, S_FANG_CHECKPATH1, 0, S_FANG_FALL2, 0}, // S_FANG_FALL1
+	{SPR_PLAY, SPR2_FALL, 1, A_Boss5CheckOnGround, S_FANG_CHECKPATH1, 0, S_FANG_FALL1, 0}, // S_FANG_FALL2
+
+	{SPR_PLAY,         0, 0, A_Boss5Calm, 0, 0, S_FANG_CHECKPATH2, 0}, // S_FANG_CHECKPATH1
+	{SPR_PLAY,         0, 0, A_Repeat, 0, S_FANG_PATHINGCONT1, S_FANG_SKID1, 0}, // S_FANG_CHECKPATH2
+
+	{SPR_PLAY,         0, 0, A_Boss5PinchShot, MT_FBOMB, -16, S_FANG_PATHINGCONT2, 0}, // S_FANG_PATHINGCONT1
+	{SPR_PLAY,         0, 0, A_PlayActiveSound, 0, 0, S_FANG_PATHINGCONT3, 0}, // S_FANG_PATHINGCONT2
+	{SPR_PLAY, SPR2_LAND, 2, A_Thrust, 0, 1, S_FANG_PATHING, 0}, // S_FANG_PATHINGCONT3
+
+	{SPR_PLAY,         0,  0, A_PlayAttackSound, 0, 0, S_FANG_SKID2, 0}, // S_FANG_SKID1
+	{SPR_PLAY, SPR2_SKID,  1, A_DoNPCSkid, S_FANG_SKID3, 0, S_FANG_SKID2, 0}, // S_FANG_SKID2
+	{SPR_PLAY, SPR2_SKID, 10, NULL, 0, 0, S_FANG_CHOOSEATTACK, 0}, // S_FANG_SKID3
+
+	{SPR_PLAY,         0, 0, A_RandomState, S_FANG_LOBSHOT0, S_FANG_FIRESTART1, S_NULL, 0}, // S_FANG_CHOOSEATTACK
+
+	{SPR_PLAY,         0,  0, A_PrepareRepeat, 3, 0, S_FANG_FIRESTART2, 0}, // S_FANG_FIRESTART1 // Reset loop
+	{SPR_PLAY, SPR2_FIRE, 18, A_LookForBetter, 1, 0, S_FANG_FIRE1, 0}, // S_FANG_FIRESTART2
+	{SPR_PLAY, SPR2_FIRE,  2, A_FireShot, MT_CORK, -16, S_FANG_FIRE2, 0}, // S_FANG_FIRE1 // Start of loop
+	{SPR_PLAY, SPR2_FIRE,  2, NULL, 0, 0, S_FANG_FIRE3, 0}, // S_FANG_FIRE2
+	{SPR_PLAY, SPR2_FIRE, 16, NULL, 0, 0, S_FANG_FIREREPEAT, 0}, // S_FANG_FIRE3
+	{SPR_PLAY,         0,  0, A_Repeat, 3, S_FANG_FIRE1, S_FANG_WAIT1, 0}, // S_FANG_FIREREPEAT // End of loop
+
+	{SPR_PLAY, SPR2_MSC3, 14, A_LookForBetter, 1, 0, S_FANG_LOBSHOT1, 0}, // S_FANG_LOBSHOT0
+	{SPR_PLAY, SPR2_MSC3,  2, A_LookForBetter, 1, 0, S_FANG_LOBSHOT2, 0}, // S_FANG_LOBSHOT1
+	{SPR_PLAY, SPR2_MSC3,  2, A_LookForBetter, 1, 0, S_FANG_LOBSHOT3, 0}, // S_FANG_LOBSHOT2
+	{SPR_PLAY, SPR2_MSC3, 18, A_BrakLobShot, MT_FBOMB, 32+(1<<16), S_FANG_WAIT1, 0}, // S_FANG_LOBSHOT3
+
+	{SPR_PLAY, SPR2_MLEL|FF_ANIMATE, 70, NULL, 0, 5, S_FANG_WAIT2, 0}, // S_FANG_WAIT1
+	{SPR_PLAY,            SPR2_STND, 35, A_Look, 1, 0, S_FANG_IDLE1, 0}, // S_FANG_WAIT2
+
+	{SPR_PLAY, SPR2_FALL, 1, A_Boss5CheckOnGround, S_FANG_PATHINGSTART2, S_FANG_PINCHPATHINGSTART1, S_FANG_WALLHIT, 0}, // S_FANG_WALLHIT
+
+	{SPR_PLAY,         0,  0, A_PrepareRepeat, 1, 0, S_FANG_PINCHPATHINGSTART2, 0}, // S_FANG_PINCHPATHINGSTART1
+	{SPR_PLAY,         0,  0, A_PlayActiveSound, 0, 0, S_FANG_PINCHPATHING, 0}, // S_FANG_PINCHPATHINGSTART2
+	{SPR_PLAY,         0,  0, A_Boss5FindWaypoint, 1, 0, S_FANG_PINCHBOUNCE0, 0}, // S_FANG_PINCHPATHING
+	{SPR_PLAY,         0,  0, A_SetObjectFlags, MF_NOCLIP|MF_NOCLIPHEIGHT, 2, S_FANG_PINCHBOUNCE1, 0}, // S_FANG_PINCHBOUNCE0
+	{SPR_PLAY, SPR2_LAND,  2, A_Thrust, 0, 1, S_FANG_PINCHBOUNCE2, 0}, // S_FANG_PINCHBOUNCE1
+	{SPR_PLAY, SPR2_LAND,  2, NULL, 0, 0, S_FANG_PINCHBOUNCE3, 0}, // S_FANG_PINCHBOUNCE2
+	{SPR_PLAY, SPR2_LAND,  2, A_Boss5Jump, 0, 0, S_FANG_PINCHBOUNCE4, 0}, // S_FANG_PINCHBOUNCE3
+	{SPR_PLAY, SPR2_BNCE,  1, A_Boss5CheckFalling, S_FANG_PINCHSKID1, S_FANG_PINCHFALL0, S_FANG_PINCHBOUNCE4, 0}, // S_FANG_PINCHBOUNCE4
+	{SPR_PLAY,         0,  0, A_SetObjectFlags, MF_NOCLIP|MF_NOCLIPHEIGHT, 1, S_FANG_PINCHFALL1, 0}, // S_FANG_PINCHFALL0
+	{SPR_PLAY, SPR2_FALL,  1, A_Boss5CheckOnGround, S_FANG_PINCHSKID1, 0, S_FANG_PINCHFALL2, 0}, // S_FANG_PINCHFALL1
+	{SPR_PLAY, SPR2_FALL,  1, A_Boss5CheckOnGround, S_FANG_PINCHSKID1, 0, S_FANG_PINCHFALL1, 0}, // S_FANG_PINCHFALL2
+	{SPR_PLAY,         0,  0, A_PlayAttackSound, 0, 0, S_FANG_PINCHSKID2, 0}, // S_FANG_PINCHSKID1
+	{SPR_PLAY, SPR2_SKID,  1, A_DoNPCSkid, S_FANG_PINCHLOBSHOT0, 0, S_FANG_PINCHSKID2, 0}, // S_FANG_PINCHSKID2
+	{SPR_PLAY, SPR2_MSC3, 16, A_FaceTarget, 1, 5, S_FANG_PINCHLOBSHOT1, 0}, // S_FANG_PINCHLOBSHOT0
+	{SPR_PLAY, SPR2_MSC3,  2, A_FaceTarget, 3, 0, S_FANG_PINCHLOBSHOT2, 0}, // S_FANG_PINCHLOBSHOT1
+	{SPR_PLAY, SPR2_MSC3,  2, A_FaceTarget, 3, 0, S_FANG_PINCHLOBSHOT3, 0}, // S_FANG_PINCHLOBSHOT2
+	{SPR_PLAY, SPR2_MSC3, 30, A_Boss5MakeItRain, MT_FBOMB, -16, S_FANG_PINCHLOBSHOT4, 0}, // S_FANG_PINCHLOBSHOT3
+	{SPR_PLAY, SPR2_STND, 18, A_LinedefExecuteFromArg, 4, 0, S_FANG_PINCHLOBSHOT5, 0}, // S_FANG_PINCHLOBSHOT4
+	{SPR_PLAY,         0,  0, A_Boss5Calm, 0, 0, S_FANG_PATHINGSTART1, 0}, // S_FANG_PINCHLOBSHOT5
+
+	{SPR_PLAY,         0, 0, A_DoNPCPain,                    0, 0, S_FANG_DIE2, 0}, // S_FANG_DIE1
+	{SPR_PLAY, SPR2_MSC4, 1, A_Boss5CheckOnGround, S_FANG_DIE3, 0, S_FANG_DIE2, 0}, // S_FANG_DIE2
+
+	{SPR_PLAY,         0,  0, A_Scream, 0, 0, S_FANG_DIE4, 0}, // S_FANG_DIE3
+	{SPR_PLAY, SPR2_MSC5, -1, A_SetFuse, 70, 0, S_FANG_DIE5, 0}, // S_FANG_DIE4
+
+	{SPR_PLAY,         0, 0, A_PlaySound, sfx_jump, 0, S_FANG_DIE6, 0}, // S_FANG_DIE5
+	{SPR_PLAY, SPR2_JUMP, 1, A_ZThrust, 6, (1<<16)|1, S_FANG_DIE7, 0}, // S_FANG_DIE6
+	{SPR_PLAY, SPR2_JUMP, 1, A_Boss5CheckFalling, S_FANG_FLEEPATHING1, S_FANG_DIE8, S_FANG_DIE7, 0}, // S_FANG_DIE7
+	{SPR_PLAY, SPR2_FALL, 1, A_Boss5CheckOnGround, S_FANG_FLEEPATHING1, 0, S_FANG_DIE8, 0}, // S_FANG_DIE8
+
+	{SPR_PLAY,         0,  0, A_PlayActiveSound, 0, 0, S_FANG_FLEEPATHING2, 0}, // S_FANG_FLEEPATHING1
+	{SPR_PLAY, SPR2_LAND,  2, A_Boss5FindWaypoint, 2, 0, S_FANG_FLEEBOUNCE1, 0}, // S_FANG_FLEEPATHING2
+	{SPR_PLAY, SPR2_LAND,  2, NULL, 0, 0, S_FANG_FLEEBOUNCE2, 0}, // S_FANG_FLEEBOUNCE1
+	{SPR_PLAY, SPR2_LAND, -1, A_BossDeath, 0, 0, S_NULL, 0}, // S_FANG_FLEEBOUNCE2
+
+	{SPR_PLAY, SPR2_DEAD, 7*TICRATE, NULL, 0, 0, S_NULL, 0}, // S_FANG_KO
+
+	{SPR_NULL, 0, -1, A_RandomStateRange, S_BROKENROBOTA, S_BROKENROBOTF, S_NULL, 0}, // S_BROKENROBOTRANDOM
+	{SPR_BRKN,    FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTA
+	{SPR_BRKN,  4|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTB
+	{SPR_BRKN,  8|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTC
+	{SPR_BRKN, 12|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTD
+	{SPR_BRKN, 16|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTE
+	{SPR_BRKN, 20|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 3, 4, S_NULL, 0}, // S_BROKENROBOTF
+
+	{SPR_WHAT,   FF_ANIMATE|FF_FULLBRIGHT,  4, NULL, 1, 2, S_ALART2, 0}, // S_ALART1
+	{SPR_WHAT, 2|FF_ANIMATE|FF_FULLBRIGHT, -1, NULL, 1, 2, S_NULL, 0},   // S_ALART2
+
+	{SPR_VWRE,   FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_VWREF
+	{SPR_VWRE, 1|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_VWREB
+
+	{SPR_PROJ,   FF_TRANS20|FF_FULLBRIGHT,  4, NULL, 0, 0, S_PROJECTORLIGHT2, 0}, // S_PROJECTORLIGHT1
+	{SPR_PROJ, 1|FF_TRANS40|FF_FULLBRIGHT,  1, NULL, 0, 0, S_PROJECTORLIGHT3, 0}, // S_PROJECTORLIGHT2
+	{SPR_PROJ, 2|FF_TRANS20|FF_FULLBRIGHT,  1, NULL, 0, 0, S_PROJECTORLIGHT4, 0}, // S_PROJECTORLIGHT3
+	{SPR_PROJ, 3|FF_TRANS40|FF_FULLBRIGHT,  2, A_Repeat, 39, S_PROJECTORLIGHT2, S_PROJECTORLIGHT5, 0}, // S_PROJECTORLIGHT4
+	{SPR_PROJ, 4|FF_TRANS60|FF_FULLBRIGHT,  2, NULL, 0, 0, S_NULL, 0}, // S_PROJECTORLIGHT5
+
+	{SPR_FBOM, 0, 1, A_GhostMe, 0, 0, S_FBOMB2, 0}, // S_FBOMB1
+	{SPR_FBOM, 1, 1, A_GhostMe, 0, 0, S_FBOMB1, 0}, // S_FBOMB2
+	{SPR_BARX, 0|FF_FULLBRIGHT, 3, A_SetObjectFlags, MF_NOCLIP|MF_NOGRAVITY|MF_NOBLOCKMAP, 0, S_FBOMB_EXPL2, 0}, // S_FBOMB_EXPL1
+	{SPR_BARX, 1|FF_FULLBRIGHT, 2, A_Boss5BombExplode, MT_TNTDUST, 0, S_FBOMB_EXPL3, 0}, // S_FBOMB_EXPL2
+	{SPR_BARX, 1|FF_FULLBRIGHT, 1, NULL, 0, 0, S_FBOMB_EXPL4, 0}, // S_FBOMB_EXPL3
+	{SPR_BARX, 2|FF_FULLBRIGHT, 3, NULL, 0, 0, S_FBOMB_EXPL5, 0}, // S_FBOMB_EXPL4
+	{SPR_BARX, 3|FF_FULLBRIGHT, 3, NULL, 0, 0, S_FBOMB_EXPL6, 0}, // S_FBOMB_EXPL5
+	{SPR_NULL, 0, 2*TICRATE, NULL, 0, 0, S_NULL, 0}, // S_FBOMB_EXPL6
+	{SPR_BARD, 0|FF_TRANS90, 2, NULL, 0, 0, S_TNTDUST_2, 0}, // S_TNTDUST_1
+	{SPR_BARD, 0|FF_TRANS30, 2*TICRATE, A_SetRandomTics, 2, TICRATE, S_TNTDUST_3, 0}, // S_TNTDUST_2
+	{SPR_BARD, 0|FF_TRANS40, 10, NULL, 0, 0, S_TNTDUST_4, 0}, // S_TNTDUST_3
+	{SPR_BARD, 0|FF_TRANS50, 10, NULL, 0, 0, S_TNTDUST_5, 0}, // S_TNTDUST_4
+	{SPR_BARD, 0|FF_TRANS60, 10, NULL, 0, 0, S_TNTDUST_6, 0}, // S_TNTDUST_5
+	{SPR_BARD, 0|FF_TRANS70, 10, NULL, 0, 0, S_TNTDUST_7, 0}, // S_TNTDUST_6
+	{SPR_BARD, 0|FF_TRANS80, 10, NULL, 0, 0, S_TNTDUST_8, 0}, // S_TNTDUST_7
+	{SPR_BARD, 0|FF_TRANS90, 10, NULL, 0, 0, S_NULL, 0}, // S_TNTDUST_8
+	{SPR_FSGN, 0|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_FSGNA
+	{SPR_FSGN, 1|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_FSGNB
+	{SPR_FSGN, 2|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_FSGNC
+	{SPR_FSGN, 3|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_FSGND
 
 	// Black Eggman (Boss 7)
-	{SPR_BRAK, 0, 1, {A_SetReactionTime}, 0, 0, S_BLACKEGG_STND2, 0}, // S_BLACKEGG_STND
-	{SPR_BRAK, 0, 7, {A_Look}, 1, 0, S_BLACKEGG_STND2, 0}, // S_BLACKEGG_STND2
-	{SPR_BRAK, 1, 7, {NULL}, 0, 0, S_BLACKEGG_WALK2, 0}, // S_BLACKEGG_WALK1
-	{SPR_BRAK, 2, 7, {NULL}, 0, 0, S_BLACKEGG_WALK3, 0}, // S_BLACKEGG_WALK2
-	{SPR_BRAK, 3, 7, {A_PlaySound}, sfx_bestep, 0, S_BLACKEGG_WALK4, 0}, // S_BLACKEGG_WALK3
-	{SPR_BRAK, 4, 7, {NULL}, 0, 0, S_BLACKEGG_WALK5, 0}, // S_BLACKEGG_WALK4
-	{SPR_BRAK, 5, 7, {NULL}, 0, 0, S_BLACKEGG_WALK6, 0}, // S_BLACKEGG_WALK5
-	{SPR_BRAK, 6, 7, {A_PlaySound}, sfx_bestp2, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_WALK6
-	{SPR_BRAK, 7, 3, {NULL}, 0, 0, S_BLACKEGG_SHOOT2, 0}, // S_BLACKEGG_SHOOT1
-	{SPR_BRAK, 24, 1, {A_PlaySound}, sfx_befire, 0, S_BLACKEGG_SHOOT1, 0}, // S_BLACKEGG_SHOOT2
-
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN2, 0}, // S_BLACKEGG_PAIN1
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN3, 0}, // S_BLACKEGG_PAIN2
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN4, 0}, // S_BLACKEGG_PAIN3
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN5, 0}, // S_BLACKEGG_PAIN4
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN6, 0}, // S_BLACKEGG_PAIN5
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN7, 0}, // S_BLACKEGG_PAIN6
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN8, 0}, // S_BLACKEGG_PAIN7
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN9, 0}, // S_BLACKEGG_PAIN8
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN10, 0}, // S_BLACKEGG_PAIN9
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN11, 0}, // S_BLACKEGG_PAIN10
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN12, 0}, // S_BLACKEGG_PAIN11
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN13, 0}, // S_BLACKEGG_PAIN12
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN14, 0}, // S_BLACKEGG_PAIN13
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN15, 0}, // S_BLACKEGG_PAIN14
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN16, 0}, // S_BLACKEGG_PAIN15
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN17, 0}, // S_BLACKEGG_PAIN16
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN18, 0}, // S_BLACKEGG_PAIN17
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN19, 0}, // S_BLACKEGG_PAIN18
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN20, 0}, // S_BLACKEGG_PAIN19
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN21, 0}, // S_BLACKEGG_PAIN20
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN22, 0}, // S_BLACKEGG_PAIN21
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN23, 0}, // S_BLACKEGG_PAIN22
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN24, 0}, // S_BLACKEGG_PAIN23
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN25, 0}, // S_BLACKEGG_PAIN24
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN26, 0}, // S_BLACKEGG_PAIN25
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN27, 0}, // S_BLACKEGG_PAIN26
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN28, 0}, // S_BLACKEGG_PAIN27
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN29, 0}, // S_BLACKEGG_PAIN28
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN30, 0}, // S_BLACKEGG_PAIN29
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN31, 0}, // S_BLACKEGG_PAIN30
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN32, 0}, // S_BLACKEGG_PAIN31
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN33, 0}, // S_BLACKEGG_PAIN32
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN34, 0}, // S_BLACKEGG_PAIN33
-	{SPR_BRAK, 25, 1, {NULL}, 0, 0, S_BLACKEGG_PAIN35, 0}, // S_BLACKEGG_PAIN34
-	{SPR_BRAK, 8, 1, {NULL}, 0, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_PAIN35
-
-	{SPR_BRAK, 9, 20, {NULL}, 0, 0, S_BLACKEGG_HITFACE2, 0}, // S_BLACKEGG_HITFACE1
-	{SPR_BRAK, 10, 2, {NULL}, 0, 0, S_BLACKEGG_HITFACE3, 0}, // S_BLACKEGG_HITFACE2
-	{SPR_BRAK, 11, 2, {NULL}, 0, 0, S_BLACKEGG_HITFACE4, 0}, // S_BLACKEGG_HITFACE3
-	{SPR_BRAK, 12,14, {NULL}, 0, 0, S_BLACKEGG_PAIN1, 0}, // S_BLACKEGG_HITFACE4
-
-	{SPR_BRAK, 13, 14, {NULL}, 0, 0, S_BLACKEGG_DIE2, 0}, // S_BLACKEGG_DIE1
-	{SPR_BRAK, 14, 7, {NULL}, 0, 0, S_BLACKEGG_DIE3, 0}, // S_BLACKEGG_DIE2
-	{SPR_BRAK, 15, 5, {NULL}, 0, 0, S_BLACKEGG_DIE4, 0}, // S_BLACKEGG_DIE3
-	{SPR_BRAK, 16, 3, {A_PlaySound}, sfx_bgxpld, 0, S_BLACKEGG_DIE5, 0}, // S_BLACKEGG_DIE4
-	{SPR_BRAK, 17, -1, {NULL}, 0, 0, S_BLACKEGG_DIE5, 0}, // S_BLACKEGG_DIE5
-
-	{SPR_BRAK, 18, 14, {NULL}, 0, 0, S_BLACKEGG_MISSILE2, 0}, // S_BLACKEGG_MISSILE1
-	{SPR_BRAK, 19, 5, {NULL}, 0, 0, S_BLACKEGG_MISSILE3, 0}, // S_BLACKEGG_MISSILE2
-	{SPR_BRAK, 20, 35, {A_Boss7FireMissiles}, MT_BLACKEGGMAN_MISSILE, sfx_beshot, S_BLACKEGG_JUMP1, 0}, // S_BLACKEGG_MISSILE3
-
-	{SPR_BRAK, 21, -1, {NULL}, 0, 0, S_BLACKEGG_STND, 0}, // S_BLACKEGG_GOOP
-
-	{SPR_BRAK, 22, 14, {A_PlaySound}, sfx_belnch, 0, S_BLACKEGG_JUMP2, 0}, // S_BLACKEGG_JUMP1
-	{SPR_BRAK, 23, -1, {NULL}, 0, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_JUMP2
-
-	{SPR_BRAK, 21, 3*TICRATE, {NULL}, 0, 0, S_BLACKEGG_DESTROYPLAT2, 0}, // S_BLACKEGG_DESTROYPLAT1
-	{SPR_BRAK, 21, 1, {A_PlaySound}, sfx_s3k54, 0, S_BLACKEGG_DESTROYPLAT3, 0}, // S_BLACKEGG_DESTROYPLAT2
-	{SPR_BRAK, 21, 14, {A_LinedefExecuteFromArg}, 5, 0, S_BLACKEGG_STND, 0}, // S_BLACKEGG_DESTROYPLAT3
-
-	{SPR_NULL, 0, 1, {A_CapeChase}, (160 - 20) << 16, 0, S_BLACKEGG_HELPER, 0}, // S_BLACKEGG_HELPER
-
-	{SPR_BGOO, FF_TRANS50  , 2, {NULL}, 0, 0, S_BLACKEGG_GOOP2, 0}, // S_BLACKEGG_GOOP1
-	{SPR_BGOO, FF_TRANS50|1, 2, {NULL}, 0, 0, S_BLACKEGG_GOOP1, 0}, // S_BLACKEGG_GOOP2
-	{SPR_BGOO, FF_TRANS50|2, 6*TICRATE, {A_GoopSplat}, 0, 0, S_BLACKEGG_GOOP4, 0}, // S_BLACKEGG_GOOP3
-	{SPR_BGOO, FF_TRANS60|2, 4, {NULL}, 0, 0, S_BLACKEGG_GOOP5, 0}, // S_BLACKEGG_GOOP4
-	{SPR_BGOO, FF_TRANS70|2, 4, {NULL}, 0, 0, S_BLACKEGG_GOOP6, 0}, // S_BLACKEGG_GOOP5
-	{SPR_BGOO, FF_TRANS80|2, 4, {NULL}, 0, 0, S_BLACKEGG_GOOP7, 0}, // S_BLACKEGG_GOOP6
-	{SPR_BGOO, FF_TRANS90|2, 4, {NULL}, 0, 0, S_NULL, 0}, // S_BLACKEGG_GOOP7
-
-	{SPR_BMSL, 0, 1, {NULL}, 0, 0, S_BLACKEGG_MISSILE, 0}, // S_BLACKEGG_MISSILE
+	{SPR_BRAK, 0, 1, A_SetReactionTime, 0, 0, S_BLACKEGG_STND2, 0}, // S_BLACKEGG_STND
+	{SPR_BRAK, 0, 7, A_Look, 1, 0, S_BLACKEGG_STND2, 0}, // S_BLACKEGG_STND2
+	{SPR_BRAK, 1, 7, NULL, 0, 0, S_BLACKEGG_WALK2, 0}, // S_BLACKEGG_WALK1
+	{SPR_BRAK, 2, 7, NULL, 0, 0, S_BLACKEGG_WALK3, 0}, // S_BLACKEGG_WALK2
+	{SPR_BRAK, 3, 7, A_PlaySound, sfx_bestep, 0, S_BLACKEGG_WALK4, 0}, // S_BLACKEGG_WALK3
+	{SPR_BRAK, 4, 7, NULL, 0, 0, S_BLACKEGG_WALK5, 0}, // S_BLACKEGG_WALK4
+	{SPR_BRAK, 5, 7, NULL, 0, 0, S_BLACKEGG_WALK6, 0}, // S_BLACKEGG_WALK5
+	{SPR_BRAK, 6, 7, A_PlaySound, sfx_bestp2, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_WALK6
+	{SPR_BRAK, 7, 3, NULL, 0, 0, S_BLACKEGG_SHOOT2, 0}, // S_BLACKEGG_SHOOT1
+	{SPR_BRAK, 24, 1, A_PlaySound, sfx_befire, 0, S_BLACKEGG_SHOOT1, 0}, // S_BLACKEGG_SHOOT2
+
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN2, 0}, // S_BLACKEGG_PAIN1
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN3, 0}, // S_BLACKEGG_PAIN2
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN4, 0}, // S_BLACKEGG_PAIN3
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN5, 0}, // S_BLACKEGG_PAIN4
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN6, 0}, // S_BLACKEGG_PAIN5
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN7, 0}, // S_BLACKEGG_PAIN6
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN8, 0}, // S_BLACKEGG_PAIN7
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN9, 0}, // S_BLACKEGG_PAIN8
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN10, 0}, // S_BLACKEGG_PAIN9
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN11, 0}, // S_BLACKEGG_PAIN10
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN12, 0}, // S_BLACKEGG_PAIN11
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN13, 0}, // S_BLACKEGG_PAIN12
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN14, 0}, // S_BLACKEGG_PAIN13
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN15, 0}, // S_BLACKEGG_PAIN14
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN16, 0}, // S_BLACKEGG_PAIN15
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN17, 0}, // S_BLACKEGG_PAIN16
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN18, 0}, // S_BLACKEGG_PAIN17
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN19, 0}, // S_BLACKEGG_PAIN18
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN20, 0}, // S_BLACKEGG_PAIN19
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN21, 0}, // S_BLACKEGG_PAIN20
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN22, 0}, // S_BLACKEGG_PAIN21
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN23, 0}, // S_BLACKEGG_PAIN22
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN24, 0}, // S_BLACKEGG_PAIN23
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN25, 0}, // S_BLACKEGG_PAIN24
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN26, 0}, // S_BLACKEGG_PAIN25
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN27, 0}, // S_BLACKEGG_PAIN26
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN28, 0}, // S_BLACKEGG_PAIN27
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN29, 0}, // S_BLACKEGG_PAIN28
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN30, 0}, // S_BLACKEGG_PAIN29
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN31, 0}, // S_BLACKEGG_PAIN30
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN32, 0}, // S_BLACKEGG_PAIN31
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN33, 0}, // S_BLACKEGG_PAIN32
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_PAIN34, 0}, // S_BLACKEGG_PAIN33
+	{SPR_BRAK, 25, 1, NULL, 0, 0, S_BLACKEGG_PAIN35, 0}, // S_BLACKEGG_PAIN34
+	{SPR_BRAK, 8, 1, NULL, 0, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_PAIN35
+
+	{SPR_BRAK, 9, 20, NULL, 0, 0, S_BLACKEGG_HITFACE2, 0}, // S_BLACKEGG_HITFACE1
+	{SPR_BRAK, 10, 2, NULL, 0, 0, S_BLACKEGG_HITFACE3, 0}, // S_BLACKEGG_HITFACE2
+	{SPR_BRAK, 11, 2, NULL, 0, 0, S_BLACKEGG_HITFACE4, 0}, // S_BLACKEGG_HITFACE3
+	{SPR_BRAK, 12,14, NULL, 0, 0, S_BLACKEGG_PAIN1, 0}, // S_BLACKEGG_HITFACE4
+
+	{SPR_BRAK, 13, 14, NULL, 0, 0, S_BLACKEGG_DIE2, 0}, // S_BLACKEGG_DIE1
+	{SPR_BRAK, 14, 7, NULL, 0, 0, S_BLACKEGG_DIE3, 0}, // S_BLACKEGG_DIE2
+	{SPR_BRAK, 15, 5, NULL, 0, 0, S_BLACKEGG_DIE4, 0}, // S_BLACKEGG_DIE3
+	{SPR_BRAK, 16, 3, A_PlaySound, sfx_bgxpld, 0, S_BLACKEGG_DIE5, 0}, // S_BLACKEGG_DIE4
+	{SPR_BRAK, 17, -1, NULL, 0, 0, S_BLACKEGG_DIE5, 0}, // S_BLACKEGG_DIE5
+
+	{SPR_BRAK, 18, 14, NULL, 0, 0, S_BLACKEGG_MISSILE2, 0}, // S_BLACKEGG_MISSILE1
+	{SPR_BRAK, 19, 5, NULL, 0, 0, S_BLACKEGG_MISSILE3, 0}, // S_BLACKEGG_MISSILE2
+	{SPR_BRAK, 20, 35, A_Boss7FireMissiles, MT_BLACKEGGMAN_MISSILE, sfx_beshot, S_BLACKEGG_JUMP1, 0}, // S_BLACKEGG_MISSILE3
+
+	{SPR_BRAK, 21, -1, NULL, 0, 0, S_BLACKEGG_STND, 0}, // S_BLACKEGG_GOOP
+
+	{SPR_BRAK, 22, 14, A_PlaySound, sfx_belnch, 0, S_BLACKEGG_JUMP2, 0}, // S_BLACKEGG_JUMP1
+	{SPR_BRAK, 23, -1, NULL, 0, 0, S_BLACKEGG_WALK1, 0}, // S_BLACKEGG_JUMP2
+
+	{SPR_BRAK, 21, 3*TICRATE, NULL, 0, 0, S_BLACKEGG_DESTROYPLAT2, 0}, // S_BLACKEGG_DESTROYPLAT1
+	{SPR_BRAK, 21, 1, A_PlaySound, sfx_s3k54, 0, S_BLACKEGG_DESTROYPLAT3, 0}, // S_BLACKEGG_DESTROYPLAT2
+	{SPR_BRAK, 21, 14, A_LinedefExecuteFromArg, 5, 0, S_BLACKEGG_STND, 0}, // S_BLACKEGG_DESTROYPLAT3
+
+	{SPR_NULL, 0, 1, A_CapeChase, (160 - 20) << 16, 0, S_BLACKEGG_HELPER, 0}, // S_BLACKEGG_HELPER
+
+	{SPR_BGOO, FF_TRANS50  , 2, NULL, 0, 0, S_BLACKEGG_GOOP2, 0}, // S_BLACKEGG_GOOP1
+	{SPR_BGOO, FF_TRANS50|1, 2, NULL, 0, 0, S_BLACKEGG_GOOP1, 0}, // S_BLACKEGG_GOOP2
+	{SPR_BGOO, FF_TRANS50|2, 6*TICRATE, A_GoopSplat, 0, 0, S_BLACKEGG_GOOP4, 0}, // S_BLACKEGG_GOOP3
+	{SPR_BGOO, FF_TRANS60|2, 4, NULL, 0, 0, S_BLACKEGG_GOOP5, 0}, // S_BLACKEGG_GOOP4
+	{SPR_BGOO, FF_TRANS70|2, 4, NULL, 0, 0, S_BLACKEGG_GOOP6, 0}, // S_BLACKEGG_GOOP5
+	{SPR_BGOO, FF_TRANS80|2, 4, NULL, 0, 0, S_BLACKEGG_GOOP7, 0}, // S_BLACKEGG_GOOP6
+	{SPR_BGOO, FF_TRANS90|2, 4, NULL, 0, 0, S_NULL, 0}, // S_BLACKEGG_GOOP7
+
+	{SPR_BMSL, 0, 1, NULL, 0, 0, S_BLACKEGG_MISSILE, 0}, // S_BLACKEGG_MISSILE
 
 	// New Very-Last-Minute 2.1 Brak Eggman (Cy-Brak-demon)
-	{SPR_BRAK, 0, 10, {A_Look}, 0, 0, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_IDLE
-	{SPR_BRAK, 1, 8, {A_BrakChase}, 3, 0, S_CYBRAKDEMON_WALK2, 0}, // S_CYBRAKDEMON_WALK1
-	{SPR_BRAK, 2, 8, {A_BrakChase}, 3, 0, S_CYBRAKDEMON_WALK3, 0}, // S_CYBRAKDEMON_WALK2
-	{SPR_BRAK, 3, 8, {A_BrakChase}, 3, sfx_bestep, S_CYBRAKDEMON_WALK4, 0}, // S_CYBRAKDEMON_WALK3
-	{SPR_BRAK, 4, 8, {A_BrakChase}, 3, 0, S_CYBRAKDEMON_WALK5, 0}, // S_CYBRAKDEMON_WALK4
-	{SPR_BRAK, 5, 8, {A_BrakChase}, 3, 0, S_CYBRAKDEMON_WALK6, 0}, // S_CYBRAKDEMON_WALK5
-	{SPR_BRAK, 6, 8, {A_BrakChase}, 3, sfx_bestp2, S_CYBRAKDEMON_WALK1, 0}, // S_CYBRAKDEMON_WALK6
-	{SPR_BRAK, 7, 6, {A_RandomState}, S_CYBRAKDEMON_MISSILE_ATTACK1, S_CYBRAKDEMON_FLAME_ATTACK1, S_CYBRAKDEMON_MISSILE_ATTACK1, 0}, // S_CYBRAKDEMON_CHOOSE_ATTACK1
-	{SPR_BRAK, 7, 6, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK2, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK1 // Aim
-	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, {A_BrakFireShot}, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_MISSILE_ATTACK3, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK2 // Fire
-	{SPR_BRAK, 7, 12, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK4, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK3 // Aim
-	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, {A_BrakFireShot}, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_MISSILE_ATTACK5, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK4 // Fire
-	{SPR_BRAK, 7, 12, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK6, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK5 // Aim
-	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, {A_BrakFireShot}, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK6 // Fire
-	{SPR_BRAK, 7, 1, {A_Repeat}, 1, S_CYBRAKDEMON_FLAME_ATTACK1, S_CYBRAKDEMON_FLAME_ATTACK2, 0}, // S_CYBRAKDEMON_FLAME_ATTACK1 // Reset
-	{SPR_BRAK, 7, 6, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_FLAME_ATTACK3, 0}, // S_CYBRAKDEMON_FLAME_ATTACK2 // Aim
-	{SPR_BRAK, 26 + FF_FULLBRIGHT, 2, {A_BrakFireShot}, MT_CYBRAKDEMON_FLAMESHOT, 128, S_CYBRAKDEMON_FLAME_ATTACK4, 0}, // S_CYBRAKDEMON_FLAME_ATTACK3 // Fire
-	{SPR_BRAK, 7, 1, {A_Repeat}, 30, S_CYBRAKDEMON_FLAME_ATTACK3, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_FLAME_ATTACK4 // Loop
-	{SPR_BRAK, 0, 6, {A_RandomState}, S_CYBRAKDEMON_VILE_ATTACK1, S_CYBRAKDEMON_NAPALM_ATTACK1, S_CYBRAKDEMON_MISSILE_ATTACK1, 0}, // S_CYBRAKDEMON_CHOOSE_ATTACK2
-	{SPR_BRAK, 20, 0, {A_LinedefExecuteFromArg}, 5, 0, S_CYBRAKDEMON_VILE_ATTACK2, 0}, // S_CYBRAKDEMON_VILE_ATTACK1
-	{SPR_BRAK, 20, 24, {A_VileTarget}, MT_CYBRAKDEMON_TARGET_RETICULE, 1, S_CYBRAKDEMON_VILE_ATTACK3, 0}, // S_CYBRAKDEMON_VILE_ATTACK2
-	{SPR_BRAK, 19, 8, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_VILE_ATTACK4, 0}, // S_CYBRAKDEMON_VILE_ATTACK3
-	{SPR_BRAK, 18, 8, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_VILE_ATTACK5, 0}, // S_CYBRAKDEMON_VILE_ATTACK4
-	{SPR_BRAK, 8, 32, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_VILE_ATTACK6, 0}, // S_CYBRAKDEMON_VILE_ATTACK5
-	{SPR_BRAK, 20 + FF_FULLBRIGHT, 28, {A_VileAttack}, sfx_brakrx, MT_CYBRAKDEMON_VILE_EXPLOSION + (1<<16), S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_VILE_ATTACK6
-	{SPR_BRAK, 0, 6, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_NAPALM_ATTACK2, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK1
-	{SPR_BRAK, 21 + FF_FULLBRIGHT, 8, {A_BrakLobShot}, MT_CYBRAKDEMON_NAPALM_BOMB_LARGE, 96, S_CYBRAKDEMON_NAPALM_ATTACK3, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK2
-	{SPR_BRAK, 0, 8, {A_FaceTarget}, 0, 0, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK3
-	{SPR_BRAK, 0, 0, {A_SetObjectFlags2}, MF2_FRET, 1, S_CYBRAKDEMON_FINISH_ATTACK2, 0}, // S_CYBRAKDEMON_FINISH_ATTACK1 // If just attacked, remove MF2_FRET w/out going back to spawnstate
-	{SPR_BRAK, 0, 0, {A_SetReactionTime}, 0, 0, S_CYBRAKDEMON_WALK1, 0}, // S_CYBRAKDEMON_FINISH_ATTACK2 // If just attacked, remove MF2_FRET w/out going back to spawnstate
-	{SPR_BRAK, 18, 24, {A_Pain}, 0, 0, S_CYBRAKDEMON_PAIN2, 0}, // S_CYBRAKDEMON_PAIN1
-	{SPR_BRAK, 18, 0, {A_CheckHealth}, 3, S_CYBRAKDEMON_PAIN3, S_CYBRAKDEMON_CHOOSE_ATTACK1, 0}, // S_CYBRAKDEMON_PAIN2
-	{SPR_BRAK, 18, 0, {A_LinedefExecuteFromArg}, 4, 0, S_CYBRAKDEMON_CHOOSE_ATTACK1, 0}, // S_CYBRAKDEMON_PAIN3
-	{SPR_BRAK, 18, 1, {A_Repeat}, 1, S_CYBRAKDEMON_DIE1, S_CYBRAKDEMON_DIE2, 0}, // S_CYBRAKDEMON_DIE1
-	{SPR_BRAK, 18, 2, {A_BossScream}, 2, 0, S_CYBRAKDEMON_DIE3, 0}, // S_CYBRAKDEMON_DIE2
-	{SPR_BRAK, 18, 0, {A_Repeat}, 52, S_CYBRAKDEMON_DIE2, S_CYBRAKDEMON_DIE4, 0}, // S_CYBRAKDEMON_DIE3
-	{SPR_BRAK, 13, 34, {A_BossDeath}, 0, 0, S_CYBRAKDEMON_DIE5, 0}, // S_CYBRAKDEMON_DIE4
-	{SPR_BRAK, 14, 34, {NULL}, 0, 0, S_CYBRAKDEMON_DIE6, 0}, // S_CYBRAKDEMON_DIE5
-	{SPR_BRAK, 15, 34, {NULL}, 0, 0, S_CYBRAKDEMON_DIE7, 0}, // S_CYBRAKDEMON_DIE6
-	{SPR_BRAK, 16, 34, {NULL}, 0, 0, S_CYBRAKDEMON_DIE8, 0}, // S_CYBRAKDEMON_DIE7
-	{SPR_BRAK, 17, 34, {NULL}, sfx_befall, 0, S_CYBRAKDEMON_DIE8, 0}, // S_CYBRAKDEMON_DIE8
-	{SPR_BRAK, 0, 0, {A_SetObjectFlags}, MF_SPECIAL|MF_SHOOTABLE, 2, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_DEINVINCIBLERIZE
-	{SPR_BRAK, 0, 0, {A_SetObjectFlags}, MF_SPECIAL|MF_SHOOTABLE, 1, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_INVINCIBLERIZE
-
-	{SPR_RCKT, 0 + FF_FULLBRIGHT, 1, {A_SetObjectFlags2}, MF2_RAILRING, 2, S_CYBRAKDEMONMISSILE, 0}, // S_CYBRAKDEMONMISSILE
-	{SPR_RCKT, 1 + FF_FULLBRIGHT, 8, {A_Explode}, 0, 0, S_CYBRAKDEMONMISSILE_EXPLODE2, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE1 //TODO: set missile mobj's "damage" to an appropriate radius
-	{SPR_RCKT, 2 + FF_FULLBRIGHT, 6, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_FLAMES + (6<<16), 32 + (16<<16), S_CYBRAKDEMONMISSILE_EXPLODE3, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE2
-	{SPR_RCKT, 3 + FF_FULLBRIGHT, 4, {NULL}, 0, 0, S_NULL, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE3
-
-	{SPR_FLME, FF_FULLBRIGHT  , 15, {NULL}, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY2, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY1
-	{SPR_FLME, FF_FULLBRIGHT|1, 15, {NULL}, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY2
-	{SPR_FLME, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY3
-	{SPR_FLME, FF_FULLBRIGHT|2, 0, {A_SpawnObjectRelative}, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL, 0}, // S_CYBRAKDEMONFLAMESHOT_DIE
-
-	{SPR_FLAM, FF_FULLBRIGHT, 1, {A_SetFuse}, 10*TICRATE, 0, S_FLAMEREST, 0}, // S_CYBRAKDEMONFLAMEREST
-
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_INIT2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_INIT1
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, {A_RemoteAction}, -1, S_CYBRAKDEMON_INVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND, 0}, // S_CYBRAKDEMONELECTRICBARRIER_INIT2
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, {A_PlayActiveSound}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER2, 0}, // S_CYBRAKDEMONELECTRICBARRIER1
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER3, 0}, // S_CYBRAKDEMONELECTRICBARRIER2
-	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER4, 0}, // S_CYBRAKDEMONELECTRICBARRIER3
-	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER5, 0}, // S_CYBRAKDEMONELECTRICBARRIER4
-	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER6, 0}, // S_CYBRAKDEMONELECTRICBARRIER5
-	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER7, 0}, // S_CYBRAKDEMONELECTRICBARRIER6
-	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER8, 0}, // S_CYBRAKDEMONELECTRICBARRIER7
-	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER9, 0}, // S_CYBRAKDEMONELECTRICBARRIER8
-	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER10, 0}, // S_CYBRAKDEMONELECTRICBARRIER9
-	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER11, 0}, // S_CYBRAKDEMONELECTRICBARRIER10
-	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER12, 0}, // S_CYBRAKDEMONELECTRICBARRIER11
-	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER13, 0}, // S_CYBRAKDEMONELECTRICBARRIER12
-	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER14, 0}, // S_CYBRAKDEMONELECTRICBARRIER13
-	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER15, 0}, // S_CYBRAKDEMONELECTRICBARRIER14
-	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER16, 0}, // S_CYBRAKDEMONELECTRICBARRIER15
-	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER17, 0}, // S_CYBRAKDEMONELECTRICBARRIER16
-	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER18, 0}, // S_CYBRAKDEMONELECTRICBARRIER17
-	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER19, 0}, // S_CYBRAKDEMONELECTRICBARRIER18
-	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER20, 0}, // S_CYBRAKDEMONELECTRICBARRIER19
-	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER21, 0}, // S_CYBRAKDEMONELECTRICBARRIER20
-	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER22, 0}, // S_CYBRAKDEMONELECTRICBARRIER21
-	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER23, 0}, // S_CYBRAKDEMONELECTRICBARRIER22
-	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER24, 0}, // S_CYBRAKDEMONELECTRICBARRIER23
-	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND, 0}, // S_CYBRAKDEMONELECTRICBARRIER24
-	{SPR_NULL, 0, 0, {A_RemoteAction}, -1, S_CYBRAKDEMON_DEINVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_DIE2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE1
-	{SPR_NULL, 0, 0, {A_SetObjectFlags}, MF_PUSHABLE|MF_FIRE|MF_PAIN, 1, S_CYBRAKDEMONELECTRICBARRIER_DIE3, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE2
-	{SPR_NULL, 0, 20*TICRATE, {A_Scream}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE3
-	{SPR_NULL, 0, 0, {A_CheckRandom}, 10, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMFAIL, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHECK,
-	{SPR_NULL, 0, 0, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHOOSE, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS,
-	{SPR_NULL, 0, 0, {A_RandomStateRange}, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM12, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHOOSE,
-	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1,
-	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM2,
-	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM3,
-	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM4,
-	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM5,
-	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM6,
-	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM7,
-	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM8,
-	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM9,
-	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM10,
-	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM11,
-	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, {A_PlaySound}, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM12,
-	{SPR_NULL, 0, 1, {NULL}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMFAIL,
-	{SPR_NULL, 0, 0, {A_Repeat}, 5*TICRATE, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHECK, S_CYBRAKDEMONELECTRICBARRIER_REVIVE1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP,
-	{SPR_NULL, 0, 0, {A_CapeChase}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_REVIVE2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE1
-	{SPR_NULL, 0, 0, {A_SpawnFreshCopy}, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_REVIVE3, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE2
-	{SPR_NULL, 0, TICRATE, {A_PlaySound}, sfx_s3k79, 0, S_NULL, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE3
-
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT  , 1, {A_VileFire}, sfx_s3k9d, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE2, 0}, // S_CYBRAKDEMONTARGETRETICULE1
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE3, 0}, // S_CYBRAKDEMONTARGETRETICULE2
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|1, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE4, 0}, // S_CYBRAKDEMONTARGETRETICULE3
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE5, 0}, // S_CYBRAKDEMONTARGETRETICULE4
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|2, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE6, 0}, // S_CYBRAKDEMONTARGETRETICULE5
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE7, 0}, // S_CYBRAKDEMONTARGETRETICULE6
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|3, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE8, 0}, // S_CYBRAKDEMONTARGETRETICULE7
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE9, 0}, // S_CYBRAKDEMONTARGETRETICULE8
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|4, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE10, 0}, // S_CYBRAKDEMONTARGETRETICULE9
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE11, 0}, // S_CYBRAKDEMONTARGETRETICULE10
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|5, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE12, 0}, // S_CYBRAKDEMONTARGETRETICULE11
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE13, 0}, // S_CYBRAKDEMONTARGETRETICULE12
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT  , 1, {A_VileFire}, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE14, 0}, // S_CYBRAKDEMONTARGETRETICULE13
-	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, {A_Repeat}, 6, S_CYBRAKDEMONTARGETRETICULE2, S_NULL, 0}, // S_CYBRAKDEMONTARGETRETICULE14
-
-	{SPR_HOOP, FF_TRANS50|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0}, // S_CYBRAKDEMONTARGETDOT
-
-	{SPR_NPLM, 0, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY2, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1,
-	{SPR_NPLM, 1, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY3, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY2,
-	{SPR_NPLM, 2, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY4, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY3,
-	{SPR_NPLM, 3, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY4,
-	{SPR_NPLM, 0, 1, {A_Explode}, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_DIE2, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE1, // Explode
-	{SPR_NPLM, 0, 1, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_BOMB_SMALL + (6<<16), 256 + (48<<16), S_CYBRAKDEMONNAPALMBOMBLARGE_DIE3, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE2, // Outer ring
-	{SPR_NPLM, 0, 1, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_BOMB_SMALL + (1<<16), 32<<16, S_CYBRAKDEMONNAPALMBOMBLARGE_DIE4, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE3, // Center
-	{SPR_NULL, 0, 81, {A_Scream}, 0, 0, S_NULL, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE4, // Sound
-
-	{SPR_MNPL, 0, 1, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMBOMBSMALL, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL,
-	{SPR_MNPL, 0, 1, {A_Explode}, 0, 0, S_CYBRAKDEMONNAPALMBOMBSMALL_DIE2, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE1, // Explode
-	{SPR_MNPL, 0, 1, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_FLAMES + (12<<16), 128 + (40<<16), S_CYBRAKDEMONNAPALMBOMBSMALL_DIE3, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE2, // Outer ring
-	{SPR_MNPL, 0, 1, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_FLAMES + (8<<16), 64 + (32<<16), S_CYBRAKDEMONNAPALMBOMBSMALL_DIE4, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE3, // Inner ring
-	{SPR_MNPL, 0, 1, {A_NapalmScatter}, MT_CYBRAKDEMON_NAPALM_FLAMES + (1<<16), 24<<16, S_CYBRAKDEMONNAPALMBOMBSMALL_DIE5, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE4, // Center
-	{SPR_NULL, 0, 24, {A_Scream}, 0, 0, S_NULL, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE5, // Sound
-
-	{SPR_SFLM, FF_FULLBRIGHT,   2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY2, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY1,
-	{SPR_SFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY3, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY2,
-	{SPR_SFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY4, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY3,
-	{SPR_SFLM, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY5, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY4,
-	{SPR_SFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY6, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY5,
-	{SPR_SFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY1, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY6,
-	{SPR_SFLM, FF_FULLBRIGHT,   0, {A_SpawnObjectRelative}, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL, 0}, //S_CYBRAKDEMONNAPALMFLAME_DIE,
-
-	{SPR_NULL, 0, 1, {A_SetFuse}, TICRATE, 0, S_CYBRAKDEMONVILEEXPLOSION2, 0}, //S_CYBRAKDEMONVILEEXPLOSION1,
-	{SPR_NULL, 0, 0, {A_ScoreRise}, 0, 0, S_CYBRAKDEMONVILEEXPLOSION3, 0}, //S_CYBRAKDEMONVILEEXPLOSION2,
-	{SPR_NULL, 0, 1, {A_BossScream}, 0, 0, S_CYBRAKDEMONVILEEXPLOSION1, 0}, //S_CYBRAKDEMONVILEEXPLOSION3,
+	{SPR_BRAK, 0, 10, A_Look, 0, 0, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_IDLE
+	{SPR_BRAK, 1, 8, A_BrakChase, 3, 0, S_CYBRAKDEMON_WALK2, 0}, // S_CYBRAKDEMON_WALK1
+	{SPR_BRAK, 2, 8, A_BrakChase, 3, 0, S_CYBRAKDEMON_WALK3, 0}, // S_CYBRAKDEMON_WALK2
+	{SPR_BRAK, 3, 8, A_BrakChase, 3, sfx_bestep, S_CYBRAKDEMON_WALK4, 0}, // S_CYBRAKDEMON_WALK3
+	{SPR_BRAK, 4, 8, A_BrakChase, 3, 0, S_CYBRAKDEMON_WALK5, 0}, // S_CYBRAKDEMON_WALK4
+	{SPR_BRAK, 5, 8, A_BrakChase, 3, 0, S_CYBRAKDEMON_WALK6, 0}, // S_CYBRAKDEMON_WALK5
+	{SPR_BRAK, 6, 8, A_BrakChase, 3, sfx_bestp2, S_CYBRAKDEMON_WALK1, 0}, // S_CYBRAKDEMON_WALK6
+	{SPR_BRAK, 7, 6, A_RandomState, S_CYBRAKDEMON_MISSILE_ATTACK1, S_CYBRAKDEMON_FLAME_ATTACK1, S_CYBRAKDEMON_MISSILE_ATTACK1, 0}, // S_CYBRAKDEMON_CHOOSE_ATTACK1
+	{SPR_BRAK, 7, 6, A_FaceTarget, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK2, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK1 // Aim
+	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, A_BrakFireShot, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_MISSILE_ATTACK3, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK2 // Fire
+	{SPR_BRAK, 7, 12, A_FaceTarget, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK4, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK3 // Aim
+	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, A_BrakFireShot, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_MISSILE_ATTACK5, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK4 // Fire
+	{SPR_BRAK, 7, 12, A_FaceTarget, 0, 0, S_CYBRAKDEMON_MISSILE_ATTACK6, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK5 // Aim
+	{SPR_BRAK, 26 + FF_FULLBRIGHT, 12, A_BrakFireShot, MT_CYBRAKDEMON_MISSILE, 128, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_MISSILE_ATTACK6 // Fire
+	{SPR_BRAK, 7, 1, A_Repeat, 1, S_CYBRAKDEMON_FLAME_ATTACK1, S_CYBRAKDEMON_FLAME_ATTACK2, 0}, // S_CYBRAKDEMON_FLAME_ATTACK1 // Reset
+	{SPR_BRAK, 7, 6, A_FaceTarget, 0, 0, S_CYBRAKDEMON_FLAME_ATTACK3, 0}, // S_CYBRAKDEMON_FLAME_ATTACK2 // Aim
+	{SPR_BRAK, 26 + FF_FULLBRIGHT, 2, A_BrakFireShot, MT_CYBRAKDEMON_FLAMESHOT, 128, S_CYBRAKDEMON_FLAME_ATTACK4, 0}, // S_CYBRAKDEMON_FLAME_ATTACK3 // Fire
+	{SPR_BRAK, 7, 1, A_Repeat, 30, S_CYBRAKDEMON_FLAME_ATTACK3, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_FLAME_ATTACK4 // Loop
+	{SPR_BRAK, 0, 6, A_RandomState, S_CYBRAKDEMON_VILE_ATTACK1, S_CYBRAKDEMON_NAPALM_ATTACK1, S_CYBRAKDEMON_MISSILE_ATTACK1, 0}, // S_CYBRAKDEMON_CHOOSE_ATTACK2
+	{SPR_BRAK, 20, 0, A_LinedefExecuteFromArg, 5, 0, S_CYBRAKDEMON_VILE_ATTACK2, 0}, // S_CYBRAKDEMON_VILE_ATTACK1
+	{SPR_BRAK, 20, 24, A_VileTarget, MT_CYBRAKDEMON_TARGET_RETICULE, 1, S_CYBRAKDEMON_VILE_ATTACK3, 0}, // S_CYBRAKDEMON_VILE_ATTACK2
+	{SPR_BRAK, 19, 8, A_FaceTarget, 0, 0, S_CYBRAKDEMON_VILE_ATTACK4, 0}, // S_CYBRAKDEMON_VILE_ATTACK3
+	{SPR_BRAK, 18, 8, A_FaceTarget, 0, 0, S_CYBRAKDEMON_VILE_ATTACK5, 0}, // S_CYBRAKDEMON_VILE_ATTACK4
+	{SPR_BRAK, 8, 32, A_FaceTarget, 0, 0, S_CYBRAKDEMON_VILE_ATTACK6, 0}, // S_CYBRAKDEMON_VILE_ATTACK5
+	{SPR_BRAK, 20 + FF_FULLBRIGHT, 28, A_VileAttack, sfx_brakrx, MT_CYBRAKDEMON_VILE_EXPLOSION + (1<<16), S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_VILE_ATTACK6
+	{SPR_BRAK, 0, 6, A_FaceTarget, 0, 0, S_CYBRAKDEMON_NAPALM_ATTACK2, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK1
+	{SPR_BRAK, 21 + FF_FULLBRIGHT, 8, A_BrakLobShot, MT_CYBRAKDEMON_NAPALM_BOMB_LARGE, 96, S_CYBRAKDEMON_NAPALM_ATTACK3, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK2
+	{SPR_BRAK, 0, 8, A_FaceTarget, 0, 0, S_CYBRAKDEMON_FINISH_ATTACK1, 0}, // S_CYBRAKDEMON_NAPALM_ATTACK3
+	{SPR_BRAK, 0, 0, A_SetObjectFlags2, MF2_FRET, 1, S_CYBRAKDEMON_FINISH_ATTACK2, 0}, // S_CYBRAKDEMON_FINISH_ATTACK1 // If just attacked, remove MF2_FRET w/out going back to spawnstate
+	{SPR_BRAK, 0, 0, A_SetReactionTime, 0, 0, S_CYBRAKDEMON_WALK1, 0}, // S_CYBRAKDEMON_FINISH_ATTACK2 // If just attacked, remove MF2_FRET w/out going back to spawnstate
+	{SPR_BRAK, 18, 24, A_Pain, 0, 0, S_CYBRAKDEMON_PAIN2, 0}, // S_CYBRAKDEMON_PAIN1
+	{SPR_BRAK, 18, 0, A_CheckHealth, 3, S_CYBRAKDEMON_PAIN3, S_CYBRAKDEMON_CHOOSE_ATTACK1, 0}, // S_CYBRAKDEMON_PAIN2
+	{SPR_BRAK, 18, 0, A_LinedefExecuteFromArg, 4, 0, S_CYBRAKDEMON_CHOOSE_ATTACK1, 0}, // S_CYBRAKDEMON_PAIN3
+	{SPR_BRAK, 18, 1, A_Repeat, 1, S_CYBRAKDEMON_DIE1, S_CYBRAKDEMON_DIE2, 0}, // S_CYBRAKDEMON_DIE1
+	{SPR_BRAK, 18, 2, A_BossScream, 2, 0, S_CYBRAKDEMON_DIE3, 0}, // S_CYBRAKDEMON_DIE2
+	{SPR_BRAK, 18, 0, A_Repeat, 52, S_CYBRAKDEMON_DIE2, S_CYBRAKDEMON_DIE4, 0}, // S_CYBRAKDEMON_DIE3
+	{SPR_BRAK, 13, 34, A_BossDeath, 0, 0, S_CYBRAKDEMON_DIE5, 0}, // S_CYBRAKDEMON_DIE4
+	{SPR_BRAK, 14, 34, NULL, 0, 0, S_CYBRAKDEMON_DIE6, 0}, // S_CYBRAKDEMON_DIE5
+	{SPR_BRAK, 15, 34, NULL, 0, 0, S_CYBRAKDEMON_DIE7, 0}, // S_CYBRAKDEMON_DIE6
+	{SPR_BRAK, 16, 34, NULL, 0, 0, S_CYBRAKDEMON_DIE8, 0}, // S_CYBRAKDEMON_DIE7
+	{SPR_BRAK, 17, 34, NULL, sfx_befall, 0, S_CYBRAKDEMON_DIE8, 0}, // S_CYBRAKDEMON_DIE8
+	{SPR_BRAK, 0, 0, A_SetObjectFlags, MF_SPECIAL|MF_SHOOTABLE, 2, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_DEINVINCIBLERIZE
+	{SPR_BRAK, 0, 0, A_SetObjectFlags, MF_SPECIAL|MF_SHOOTABLE, 1, S_CYBRAKDEMON_IDLE, 0}, // S_CYBRAKDEMON_INVINCIBLERIZE
+
+	{SPR_RCKT, 0 + FF_FULLBRIGHT, 1, A_SetObjectFlags2, MF2_RAILRING, 2, S_CYBRAKDEMONMISSILE, 0}, // S_CYBRAKDEMONMISSILE
+	{SPR_RCKT, 1 + FF_FULLBRIGHT, 8, A_Explode, 0, 0, S_CYBRAKDEMONMISSILE_EXPLODE2, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE1 //TODO: set missile mobj's "damage" to an appropriate radius
+	{SPR_RCKT, 2 + FF_FULLBRIGHT, 6, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_FLAMES + (6<<16), 32 + (16<<16), S_CYBRAKDEMONMISSILE_EXPLODE3, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE2
+	{SPR_RCKT, 3 + FF_FULLBRIGHT, 4, NULL, 0, 0, S_NULL, 0}, // S_CYBRAKDEMONMISSILE_EXPLODE3
+
+	{SPR_FLME, FF_FULLBRIGHT  , 15, NULL, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY2, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY1
+	{SPR_FLME, FF_FULLBRIGHT|1, 15, NULL, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY2
+	{SPR_FLME, FF_FULLBRIGHT|2, -1, NULL, 0, 0, S_CYBRAKDEMONFLAMESHOT_FLY3, 0}, // S_CYBRAKDEMONFLAMESHOT_FLY3
+	{SPR_FLME, FF_FULLBRIGHT|2, 0, A_SpawnObjectRelative, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL, 0}, // S_CYBRAKDEMONFLAMESHOT_DIE
+
+	{SPR_FLAM, FF_FULLBRIGHT, 1, A_SetFuse, 10*TICRATE, 0, S_FLAMEREST, 0}, // S_CYBRAKDEMONFLAMEREST
+
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, NULL, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_INIT2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_INIT1
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, A_RemoteAction, -1, S_CYBRAKDEMON_INVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND, 0}, // S_CYBRAKDEMONELECTRICBARRIER_INIT2
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 0, A_PlayActiveSound, 0, 0, S_CYBRAKDEMONELECTRICBARRIER1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER2, 0}, // S_CYBRAKDEMONELECTRICBARRIER1
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER3, 0}, // S_CYBRAKDEMONELECTRICBARRIER2
+	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER4, 0}, // S_CYBRAKDEMONELECTRICBARRIER3
+	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER5, 0}, // S_CYBRAKDEMONELECTRICBARRIER4
+	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER6, 0}, // S_CYBRAKDEMONELECTRICBARRIER5
+	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER7, 0}, // S_CYBRAKDEMONELECTRICBARRIER6
+	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER8, 0}, // S_CYBRAKDEMONELECTRICBARRIER7
+	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER9, 0}, // S_CYBRAKDEMONELECTRICBARRIER8
+	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER10, 0}, // S_CYBRAKDEMONELECTRICBARRIER9
+	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER11, 0}, // S_CYBRAKDEMONELECTRICBARRIER10
+	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER12, 0}, // S_CYBRAKDEMONELECTRICBARRIER11
+	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER13, 0}, // S_CYBRAKDEMONELECTRICBARRIER12
+	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER14, 0}, // S_CYBRAKDEMONELECTRICBARRIER13
+	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER15, 0}, // S_CYBRAKDEMONELECTRICBARRIER14
+	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER16, 0}, // S_CYBRAKDEMONELECTRICBARRIER15
+	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER17, 0}, // S_CYBRAKDEMONELECTRICBARRIER16
+	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER18, 0}, // S_CYBRAKDEMONELECTRICBARRIER17
+	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER19, 0}, // S_CYBRAKDEMONELECTRICBARRIER18
+	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER20, 0}, // S_CYBRAKDEMONELECTRICBARRIER19
+	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER21, 0}, // S_CYBRAKDEMONELECTRICBARRIER20
+	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER22, 0}, // S_CYBRAKDEMONELECTRICBARRIER21
+	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER23, 0}, // S_CYBRAKDEMONELECTRICBARRIER22
+	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER24, 0}, // S_CYBRAKDEMONELECTRICBARRIER23
+	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_PLAYSOUND, 0}, // S_CYBRAKDEMONELECTRICBARRIER24
+	{SPR_NULL, 0, 0, A_RemoteAction, -1, S_CYBRAKDEMON_DEINVINCIBLERIZE, S_CYBRAKDEMONELECTRICBARRIER_DIE2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE1
+	{SPR_NULL, 0, 0, A_SetObjectFlags, MF_PUSHABLE|MF_FIRE|MF_PAIN, 1, S_CYBRAKDEMONELECTRICBARRIER_DIE3, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE2
+	{SPR_NULL, 0, 20*TICRATE, A_Scream, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS, 0}, // S_CYBRAKDEMONELECTRICBARRIER_DIE3
+	{SPR_NULL, 0, 0, A_CheckRandom, 10, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMFAIL, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHECK,
+	{SPR_NULL, 0, 0, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHOOSE, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMSUCCESS,
+	{SPR_NULL, 0, 0, A_RandomStateRange, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM12, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHOOSE,
+	{SPR_ELEC, 0 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM1,
+	{SPR_ELEC, 1 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM2,
+	{SPR_ELEC, 2 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM3,
+	{SPR_ELEC, 3 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM4,
+	{SPR_ELEC, 4 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM5,
+	{SPR_ELEC, 5 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM6,
+	{SPR_ELEC, 6 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM7,
+	{SPR_ELEC, 7 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM8,
+	{SPR_ELEC, 8 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM9,
+	{SPR_ELEC, 9 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM10,
+	{SPR_ELEC, 10 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM11,
+	{SPR_ELEC, 11 + FF_FULLBRIGHT, 1, A_PlaySound, sfx_s3k5c, 1, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOM12,
+	{SPR_NULL, 0, 1, NULL, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMFAIL,
+	{SPR_NULL, 0, 0, A_Repeat, 5*TICRATE, S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMCHECK, S_CYBRAKDEMONELECTRICBARRIER_REVIVE1, 0}, // S_CYBRAKDEMONELECTRICBARRIER_SPARK_RANDOMLOOP,
+	{SPR_NULL, 0, 0, A_CapeChase, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_REVIVE2, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE1
+	{SPR_NULL, 0, 0, A_SpawnFreshCopy, 0, 0, S_CYBRAKDEMONELECTRICBARRIER_REVIVE3, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE2
+	{SPR_NULL, 0, TICRATE, A_PlaySound, sfx_s3k79, 0, S_NULL, 0}, // S_CYBRAKDEMONELECTRICBARRIER_REVIVE3
+
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT  , 1, A_VileFire, sfx_s3k9d, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE2, 0}, // S_CYBRAKDEMONTARGETRETICULE1
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE3, 0}, // S_CYBRAKDEMONTARGETRETICULE2
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|1, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE4, 0}, // S_CYBRAKDEMONTARGETRETICULE3
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE5, 0}, // S_CYBRAKDEMONTARGETRETICULE4
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|2, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE6, 0}, // S_CYBRAKDEMONTARGETRETICULE5
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE7, 0}, // S_CYBRAKDEMONTARGETRETICULE6
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|3, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE8, 0}, // S_CYBRAKDEMONTARGETRETICULE7
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE9, 0}, // S_CYBRAKDEMONTARGETRETICULE8
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|4, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE10, 0}, // S_CYBRAKDEMONTARGETRETICULE9
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE11, 0}, // S_CYBRAKDEMONTARGETRETICULE10
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|5, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE12, 0}, // S_CYBRAKDEMONTARGETRETICULE11
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE13, 0}, // S_CYBRAKDEMONTARGETRETICULE12
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT  , 1, A_VileFire, 0, MT_CYBRAKDEMON_TARGET_DOT, S_CYBRAKDEMONTARGETRETICULE14, 0}, // S_CYBRAKDEMONTARGETRETICULE13
+	{SPR_TARG, FF_TRANS50|FF_FULLBRIGHT|6, 1, A_Repeat, 6, S_CYBRAKDEMONTARGETRETICULE2, S_NULL, 0}, // S_CYBRAKDEMONTARGETRETICULE14
+
+	{SPR_HOOP, FF_TRANS50|FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0}, // S_CYBRAKDEMONTARGETDOT
+
+	{SPR_NPLM, 0, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY2, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1,
+	{SPR_NPLM, 1, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY3, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY2,
+	{SPR_NPLM, 2, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY4, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY3,
+	{SPR_NPLM, 3, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_FLY1, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_FLY4,
+	{SPR_NPLM, 0, 1, A_Explode, 0, 0, S_CYBRAKDEMONNAPALMBOMBLARGE_DIE2, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE1, // Explode
+	{SPR_NPLM, 0, 1, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_BOMB_SMALL + (6<<16), 256 + (48<<16), S_CYBRAKDEMONNAPALMBOMBLARGE_DIE3, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE2, // Outer ring
+	{SPR_NPLM, 0, 1, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_BOMB_SMALL + (1<<16), 32<<16, S_CYBRAKDEMONNAPALMBOMBLARGE_DIE4, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE3, // Center
+	{SPR_NULL, 0, 81, A_Scream, 0, 0, S_NULL, 0}, //S_CYBRAKDEMONNAPALMBOMBLARGE_DIE4, // Sound
+
+	{SPR_MNPL, 0, 1, NULL, 0, 0, S_CYBRAKDEMONNAPALMBOMBSMALL, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL,
+	{SPR_MNPL, 0, 1, A_Explode, 0, 0, S_CYBRAKDEMONNAPALMBOMBSMALL_DIE2, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE1, // Explode
+	{SPR_MNPL, 0, 1, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_FLAMES + (12<<16), 128 + (40<<16), S_CYBRAKDEMONNAPALMBOMBSMALL_DIE3, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE2, // Outer ring
+	{SPR_MNPL, 0, 1, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_FLAMES + (8<<16), 64 + (32<<16), S_CYBRAKDEMONNAPALMBOMBSMALL_DIE4, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE3, // Inner ring
+	{SPR_MNPL, 0, 1, A_NapalmScatter, MT_CYBRAKDEMON_NAPALM_FLAMES + (1<<16), 24<<16, S_CYBRAKDEMONNAPALMBOMBSMALL_DIE5, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE4, // Center
+	{SPR_NULL, 0, 24, A_Scream, 0, 0, S_NULL, 0}, //S_CYBRAKDEMONNAPALMBOMBSMALL_DIE5, // Sound
+
+	{SPR_SFLM, FF_FULLBRIGHT,   2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY2, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY1,
+	{SPR_SFLM, FF_FULLBRIGHT|1, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY3, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY2,
+	{SPR_SFLM, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY4, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY3,
+	{SPR_SFLM, FF_FULLBRIGHT|3, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY5, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY4,
+	{SPR_SFLM, FF_FULLBRIGHT|4, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY6, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY5,
+	{SPR_SFLM, FF_FULLBRIGHT|5, 2, NULL, 0, 0, S_CYBRAKDEMONNAPALMFLAME_FLY1, 0}, //S_CYBRAKDEMONNAPALMFLAME_FLY6,
+	{SPR_SFLM, FF_FULLBRIGHT,   0, A_SpawnObjectRelative, 0, MT_CYBRAKDEMON_FLAMEREST, S_NULL, 0}, //S_CYBRAKDEMONNAPALMFLAME_DIE,
+
+	{SPR_NULL, 0, 1, A_SetFuse, TICRATE, 0, S_CYBRAKDEMONVILEEXPLOSION2, 0}, //S_CYBRAKDEMONVILEEXPLOSION1,
+	{SPR_NULL, 0, 0, A_ScoreRise, 0, 0, S_CYBRAKDEMONVILEEXPLOSION3, 0}, //S_CYBRAKDEMONVILEEXPLOSION2,
+	{SPR_NULL, 0, 1, A_BossScream, 0, 0, S_CYBRAKDEMONVILEEXPLOSION1, 0}, //S_CYBRAKDEMONVILEEXPLOSION3,
 
 	// Metal Sonic
-	{SPR_PLAY, SPR2_STND, -1, {NULL}, 0, 0, S_METALSONIC_RACE, 0}, // S_METALSONIC_RACE
-
-	{SPR_PLAY,               SPR2_WALK, -1, {NULL},         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_FLOAT
-	{SPR_PLAY, SPR2_MSC1|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_METALSONIC_STUN, 0}, // S_METALSONIC_VECTOR
-	{SPR_PLAY,               SPR2_MSC0, -1, {NULL},         0, 0, S_METALSONIC_FLOAT, 0},// S_METALSONIC_STUN
-	{SPR_PLAY, SPR2_SPNG, 20, {NULL},         0, 0, S_METALSONIC_GATHER, 0}, // S_METALSONIC_RAISE
-	{SPR_PLAY, SPR2_MSC2, -1, {NULL},         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_GATHER
-	{SPR_PLAY, SPR2_DASH|FF_FULLBRIGHT, -1, {NULL}, 1, 2, S_METALSONIC_BOUNCE, 0}, // S_METALSONIC_DASH
-	{SPR_PLAY, SPR2_MSC2|FF_FULLBRIGHT, -1, {NULL}, 1, 2, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_BOUNCE
-	{SPR_PLAY, SPR2_PAIN, -1, {NULL},         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_BADBOUNCE
-	{SPR_PLAY, SPR2_SPNG, -1, {NULL},         0, 0, S_METALSONIC_GATHER, 0}, // S_METALSONIC_SHOOT
-	{SPR_PLAY, SPR2_FLT, 40, {A_Pain},       0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_PAIN
-	{SPR_PLAY, SPR2_SPNG,  2, {A_Fall},       0, 0, S_METALSONIC_DEATH2, 0}, // S_METALSONIC_DEATH1
-	{SPR_PLAY, SPR2_SPNG,  4, {A_BossScream}, 0, 0, S_METALSONIC_DEATH3, 0}, // S_METALSONIC_DEATH2
-	{SPR_PLAY, SPR2_SPNG,  0, {A_Repeat}, 17, S_METALSONIC_DEATH2, S_METALSONIC_DEATH4, 0}, // S_METALSONIC_DEATH3
-	{SPR_PLAY, SPR2_SPNG, -1, {A_BossDeath},  0, 0, S_NULL, 0}, // S_METALSONIC_DEATH4
-	{SPR_PLAY, SPR2_FLT,  1, {A_BossScream},         0, 0, S_METALSONIC_FLEE2, 0}, // S_METALSONIC_FLEE1
-	{SPR_PLAY, SPR2_FLT,  7, {NULL},                 0, 0, S_METALSONIC_FLEE1, 0}, // S_METALSONIC_FLEE2
-
-	{SPR_MSCF, FF_FULLBRIGHT|FF_TRANS30|FF_ANIMATE, -1, {NULL}, 11, 1, S_NULL, 0},  // S_MSSHIELD_F1
-	{SPR_MSCF, FF_FULLBRIGHT|FF_ANIMATE|12, -1, {NULL}, 8, 2, S_NULL, 0},  // S_MSSHIELD_F2
+	{SPR_PLAY, SPR2_STND, -1, NULL, 0, 0, S_METALSONIC_RACE, 0}, // S_METALSONIC_RACE
+
+	{SPR_PLAY,               SPR2_WALK, -1, NULL,         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_FLOAT
+	{SPR_PLAY, SPR2_MSC1|FF_FULLBRIGHT, -1, NULL, 0, 0, S_METALSONIC_STUN, 0}, // S_METALSONIC_VECTOR
+	{SPR_PLAY,               SPR2_MSC0, -1, NULL,         0, 0, S_METALSONIC_FLOAT, 0},// S_METALSONIC_STUN
+	{SPR_PLAY, SPR2_SPNG, 20, NULL,         0, 0, S_METALSONIC_GATHER, 0}, // S_METALSONIC_RAISE
+	{SPR_PLAY, SPR2_MSC2, -1, NULL,         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_GATHER
+	{SPR_PLAY, SPR2_DASH|FF_FULLBRIGHT, -1, NULL, 1, 2, S_METALSONIC_BOUNCE, 0}, // S_METALSONIC_DASH
+	{SPR_PLAY, SPR2_MSC2|FF_FULLBRIGHT, -1, NULL, 1, 2, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_BOUNCE
+	{SPR_PLAY, SPR2_PAIN, -1, NULL,         0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_BADBOUNCE
+	{SPR_PLAY, SPR2_SPNG, -1, NULL,         0, 0, S_METALSONIC_GATHER, 0}, // S_METALSONIC_SHOOT
+	{SPR_PLAY, SPR2_FLT, 40, A_Pain,       0, 0, S_METALSONIC_FLOAT, 0}, // S_METALSONIC_PAIN
+	{SPR_PLAY, SPR2_SPNG,  2, A_Fall,       0, 0, S_METALSONIC_DEATH2, 0}, // S_METALSONIC_DEATH1
+	{SPR_PLAY, SPR2_SPNG,  4, A_BossScream, 0, 0, S_METALSONIC_DEATH3, 0}, // S_METALSONIC_DEATH2
+	{SPR_PLAY, SPR2_SPNG,  0, A_Repeat, 17, S_METALSONIC_DEATH2, S_METALSONIC_DEATH4, 0}, // S_METALSONIC_DEATH3
+	{SPR_PLAY, SPR2_SPNG, -1, A_BossDeath,  0, 0, S_NULL, 0}, // S_METALSONIC_DEATH4
+	{SPR_PLAY, SPR2_FLT,  1, A_BossScream,         0, 0, S_METALSONIC_FLEE2, 0}, // S_METALSONIC_FLEE1
+	{SPR_PLAY, SPR2_FLT,  7, NULL,                 0, 0, S_METALSONIC_FLEE1, 0}, // S_METALSONIC_FLEE2
+
+	{SPR_MSCF, FF_FULLBRIGHT|FF_TRANS30|FF_ANIMATE, -1, NULL, 11, 1, S_NULL, 0},  // S_MSSHIELD_F1
+	{SPR_MSCF, FF_FULLBRIGHT|FF_ANIMATE|12, -1, NULL, 8, 2, S_NULL, 0},  // S_MSSHIELD_F2
 
 	// Ring
-	{SPR_RING, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 23, 1, S_RING, 0}, // S_RING
+	{SPR_RING, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 23, 1, S_RING, 0}, // S_RING
 
 	// Blue Sphere for special stages
-	{SPR_SPHR, FF_SEMIBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLUESPHERE
+	{SPR_SPHR, FF_SEMIBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_BLUESPHERE
 	{SPR_SPHR, FF_SEMIBRIGHT
 #ifdef MANIASPHERES
 							|FF_ANIMATE|FF_RANDOMANIM
 #endif
-													, -1, {NULL}, 1, 4, S_NULL, 0}, // S_BLUESPHEREBONUS
-	{SPR_SPHR, 0, 20, {NULL}, 0, 0, S_NULL, 0}, // S_BLUESPHERESPARK
+													, -1, NULL, 1, 4, S_NULL, 0}, // S_BLUESPHEREBONUS
+	{SPR_SPHR, 0, 20, NULL, 0, 0, S_NULL, 0}, // S_BLUESPHERESPARK
 
 	// Bomb Sphere
-	{SPR_SPHR, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_BOMBSPHERE2, 0}, // S_BOMBSPHERE1
-	{SPR_SPHR, FF_SEMIBRIGHT|4, 1, {NULL}, 0, 0, S_BOMBSPHERE3, 0}, // S_BOMBSPHERE2
-	{SPR_SPHR, FF_SEMIBRIGHT|5, 2, {NULL}, 0, 0, S_BOMBSPHERE4, 0}, // S_BOMBSPHERE3
-	{SPR_SPHR, FF_SEMIBRIGHT|4, 1, {NULL}, 0, 0, S_BOMBSPHERE1, 0}, // S_BOMBSPHERE4
+	{SPR_SPHR, FF_FULLBRIGHT|3, 2, NULL, 0, 0, S_BOMBSPHERE2, 0}, // S_BOMBSPHERE1
+	{SPR_SPHR, FF_SEMIBRIGHT|4, 1, NULL, 0, 0, S_BOMBSPHERE3, 0}, // S_BOMBSPHERE2
+	{SPR_SPHR, FF_SEMIBRIGHT|5, 2, NULL, 0, 0, S_BOMBSPHERE4, 0}, // S_BOMBSPHERE3
+	{SPR_SPHR, FF_SEMIBRIGHT|4, 1, NULL, 0, 0, S_BOMBSPHERE1, 0}, // S_BOMBSPHERE4
 
 	// NiGHTS Chip
-	{SPR_NCHP, FF_SEMIBRIGHT|FF_ANIMATE,    -1, {NULL}, 15, 2, S_NULL, 0}, // S_NIGHTSCHIP
-	{SPR_NCHP, FF_SEMIBRIGHT|FF_ANIMATE|16, -1, {NULL}, 15, 2, S_NULL, 0}, // S_NIGHTSCHIPBONUS
+	{SPR_NCHP, FF_SEMIBRIGHT|FF_ANIMATE,    -1, NULL, 15, 2, S_NULL, 0}, // S_NIGHTSCHIP
+	{SPR_NCHP, FF_SEMIBRIGHT|FF_ANIMATE|16, -1, NULL, 15, 2, S_NULL, 0}, // S_NIGHTSCHIPBONUS
 
 	// NiGHTS Star
-	{SPR_NSTR, FF_ANIMATE, -1, {NULL}, 14, 2, S_NULL, 0}, // S_NIGHTSSTAR
-	{SPR_NSTR, 15, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSSTARXMAS
+	{SPR_NSTR, FF_ANIMATE, -1, NULL, 14, 2, S_NULL, 0}, // S_NIGHTSSTAR
+	{SPR_NSTR, 15, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSSTARXMAS
 
 	// Gravity Well sprites for Egg Rock's Special Stage
-	{SPR_GWLG, FF_ANIMATE, -1, {NULL}, 2, 1, S_NULL, 0}, // S_GRAVWELLGREEN
-	{SPR_GWLR, FF_ANIMATE, -1, {NULL}, 2, 1, S_NULL, 0}, // S_GRAVWELLRED
+	{SPR_GWLG, FF_ANIMATE, -1, NULL, 2, 1, S_NULL, 0}, // S_GRAVWELLGREEN
+	{SPR_GWLR, FF_ANIMATE, -1, NULL, 2, 1, S_NULL, 0}, // S_GRAVWELLRED
 
 	// Individual Team Rings (now with shield attracting action! =P)
-	{SPR_TRNG, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 23, 1, S_TEAMRING, 0},  // S_TEAMRING
+	{SPR_TRNG, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 23, 1, S_TEAMRING, 0},  // S_TEAMRING
 
 	// Special Stage Token
-	{SPR_TOKE, FF_ANIMATE|FF_FULLBRIGHT, -1, {NULL}, 19, 1, S_TOKEN, 0}, // S_TOKEN
+	{SPR_TOKE, FF_ANIMATE|FF_FULLBRIGHT, -1, NULL, 19, 1, S_TOKEN, 0}, // S_TOKEN
 
 	// CTF Flags
-	{SPR_RFLG, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_REDFLAG
-	{SPR_BFLG, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLUEFLAG
+	{SPR_RFLG, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_REDFLAG
+	{SPR_BFLG, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BLUEFLAG
 
 	// Emblem
-	{SPR_EMBM,  0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM1
-	{SPR_EMBM,  1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM2
-	{SPR_EMBM,  2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM3
-	{SPR_EMBM,  3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM4
-	{SPR_EMBM,  4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM5
-	{SPR_EMBM,  5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM6
-	{SPR_EMBM,  6, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM7
-	{SPR_EMBM,  7, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM8
-	{SPR_EMBM,  8, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM9
-	{SPR_EMBM,  9, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM10
-	{SPR_EMBM, 10, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM11
-	{SPR_EMBM, 11, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM12
-	{SPR_EMBM, 12, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM13
-	{SPR_EMBM, 13, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM14
-	{SPR_EMBM, 14, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM15
-	{SPR_EMBM, 15, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM16
-	{SPR_EMBM, 16, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM17
-	{SPR_EMBM, 17, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM18
-	{SPR_EMBM, 18, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM19
-	{SPR_EMBM, 19, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM20
-	{SPR_EMBM, 20, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM21
-	{SPR_EMBM, 21, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM22
-	{SPR_EMBM, 22, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM23
-	{SPR_EMBM, 23, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM24
-	{SPR_EMBM, 24, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM25
-	{SPR_EMBM, 25, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EMBLEM26
+	{SPR_EMBM,  0, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM1
+	{SPR_EMBM,  1, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM2
+	{SPR_EMBM,  2, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM3
+	{SPR_EMBM,  3, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM4
+	{SPR_EMBM,  4, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM5
+	{SPR_EMBM,  5, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM6
+	{SPR_EMBM,  6, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM7
+	{SPR_EMBM,  7, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM8
+	{SPR_EMBM,  8, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM9
+	{SPR_EMBM,  9, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM10
+	{SPR_EMBM, 10, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM11
+	{SPR_EMBM, 11, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM12
+	{SPR_EMBM, 12, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM13
+	{SPR_EMBM, 13, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM14
+	{SPR_EMBM, 14, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM15
+	{SPR_EMBM, 15, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM16
+	{SPR_EMBM, 16, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM17
+	{SPR_EMBM, 17, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM18
+	{SPR_EMBM, 18, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM19
+	{SPR_EMBM, 19, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM20
+	{SPR_EMBM, 20, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM21
+	{SPR_EMBM, 21, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM22
+	{SPR_EMBM, 22, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM23
+	{SPR_EMBM, 23, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM24
+	{SPR_EMBM, 24, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM25
+	{SPR_EMBM, 25, -1, NULL, 0, 0, S_NULL, 0}, // S_EMBLEM26
 
 	// Chaos Emeralds
-	{SPR_CEMG, FF_FULLBRIGHT,   -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG1
-	{SPR_CEMG, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG2
-	{SPR_CEMG, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG3
-	{SPR_CEMG, FF_FULLBRIGHT|3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG4
-	{SPR_CEMG, FF_FULLBRIGHT|4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG5
-	{SPR_CEMG, FF_FULLBRIGHT|5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG6
-	{SPR_CEMG, FF_FULLBRIGHT|6, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEMG7
+	{SPR_CEMG, FF_FULLBRIGHT,   -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG1
+	{SPR_CEMG, FF_FULLBRIGHT|1, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG2
+	{SPR_CEMG, FF_FULLBRIGHT|2, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG3
+	{SPR_CEMG, FF_FULLBRIGHT|3, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG4
+	{SPR_CEMG, FF_FULLBRIGHT|4, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG5
+	{SPR_CEMG, FF_FULLBRIGHT|5, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG6
+	{SPR_CEMG, FF_FULLBRIGHT|6, -1, NULL, 0, 0, S_NULL, 0}, // S_CEMG7
 
 	// Emerald hunt shards
-	{SPR_SHRD, FF_SEMIBRIGHT,   -1, {NULL}, 0, 0, S_NULL, 0}, // S_SHRD1
-	{SPR_SHRD, FF_SEMIBRIGHT|1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SHRD2
-	{SPR_SHRD, FF_SEMIBRIGHT|2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SHRD3
+	{SPR_SHRD, FF_SEMIBRIGHT,   -1, NULL, 0, 0, S_NULL, 0}, // S_SHRD1
+	{SPR_SHRD, FF_SEMIBRIGHT|1, -1, NULL, 0, 0, S_NULL, 0}, // S_SHRD2
+	{SPR_SHRD, FF_SEMIBRIGHT|2, -1, NULL, 0, 0, S_NULL, 0}, // S_SHRD3
 
 	// Bubble Source
-	{SPR_BBLS, 0, 8, {A_BubbleSpawn}, 2048, 0, S_BUBBLES2, 0}, // S_BUBBLES1
-	{SPR_BBLS, 1, 8, {A_BubbleCheck}, 0, 0, S_BUBBLES3, 0}, // S_BUBBLES2
-	{SPR_BBLS, 2, 8, {A_BubbleSpawn}, 2048, 0, S_BUBBLES4, 0}, // S_BUBBLES3
-	{SPR_BBLS, 3, 8, {A_BubbleCheck}, 0, 0, S_BUBBLES1, 0}, // S_BUBBLES4
+	{SPR_BBLS, 0, 8, A_BubbleSpawn, 2048, 0, S_BUBBLES2, 0}, // S_BUBBLES1
+	{SPR_BBLS, 1, 8, A_BubbleCheck, 0, 0, S_BUBBLES3, 0}, // S_BUBBLES2
+	{SPR_BBLS, 2, 8, A_BubbleSpawn, 2048, 0, S_BUBBLES4, 0}, // S_BUBBLES3
+	{SPR_BBLS, 3, 8, A_BubbleCheck, 0, 0, S_BUBBLES1, 0}, // S_BUBBLES4
 
 	// Level End Sign
-	{SPR_SIGN,                 0, -1, {A_SignPlayer}, -3, 0, S_NULL, 0},                // S_SIGN
-	{SPR_SIGN,                 0,  1,   {A_SignSpin}, 30, 0, S_SIGNSPIN2, 0},           // S_SIGNSPIN1
-	{SPR_SIGN,                 0,  0,     {A_Repeat},  4, S_SIGNSPIN1, S_SIGNSPIN3, 0}, // S_SIGNSPIN2
-	{SPR_SIGN,                 0,  0, {A_SignPlayer}, -2, 0, S_SIGNSPIN4, 0},           // S_SIGNSPIN3
-	{SPR_SIGN,                 0,  1,   {A_SignSpin}, 30, 0, S_SIGNSPIN5, 0},           // S_SIGNSPIN4
-	{SPR_SIGN,                 0,  0,     {A_Repeat},  4, S_SIGNSPIN4, S_SIGNSPIN6, 0}, // S_SIGNSPIN5
-	{SPR_SIGN,                 0,  0, {A_SignPlayer}, -3, 0, S_SIGNSPIN1, 0},           // S_SIGNSPIN6
-	{SPR_SIGN,                 0,  1, {A_SignPlayer}, -1, 0, S_SIGNSLOW, 0},            // S_SIGNPLAYER
-	{SPR_SIGN,                 0,  1,   {A_SignSpin}, 30, 0, S_SIGNSLOW, 0},            // S_SIGNSLOW
-	{SPR_SIGN,                 0, -1,         {NULL},  0, 0, S_NULL, 0},                // S_SIGNSTOP
-	{SPR_SIGN, FF_PAPERSPRITE| 2, -1,         {NULL},  0, 0, S_NULL, 0},                // S_SIGNBOARD
-	{SPR_SIGN, FF_PAPERSPRITE| 1, -1,         {NULL},  0, 29, S_NULL, 0},               // S_EGGMANSIGN
-	{SPR_SIGN, FF_PAPERSPRITE|18, -1,         {NULL},  0, 29, S_NULL, 0},               // S_CLEARSIGN
+	{SPR_SIGN,                 0, -1, A_SignPlayer, -3, 0, S_NULL, 0},                // S_SIGN
+	{SPR_SIGN,                 0,  1,   A_SignSpin, 30, 0, S_SIGNSPIN2, 0},           // S_SIGNSPIN1
+	{SPR_SIGN,                 0,  0,     A_Repeat,  4, S_SIGNSPIN1, S_SIGNSPIN3, 0}, // S_SIGNSPIN2
+	{SPR_SIGN,                 0,  0, A_SignPlayer, -2, 0, S_SIGNSPIN4, 0},           // S_SIGNSPIN3
+	{SPR_SIGN,                 0,  1,   A_SignSpin, 30, 0, S_SIGNSPIN5, 0},           // S_SIGNSPIN4
+	{SPR_SIGN,                 0,  0,     A_Repeat,  4, S_SIGNSPIN4, S_SIGNSPIN6, 0}, // S_SIGNSPIN5
+	{SPR_SIGN,                 0,  0, A_SignPlayer, -3, 0, S_SIGNSPIN1, 0},           // S_SIGNSPIN6
+	{SPR_SIGN,                 0,  1, A_SignPlayer, -1, 0, S_SIGNSLOW, 0},            // S_SIGNPLAYER
+	{SPR_SIGN,                 0,  1,   A_SignSpin, 30, 0, S_SIGNSLOW, 0},            // S_SIGNSLOW
+	{SPR_SIGN,                 0, -1,         NULL,  0, 0, S_NULL, 0},                // S_SIGNSTOP
+	{SPR_SIGN, FF_PAPERSPRITE| 2, -1,         NULL,  0, 0, S_NULL, 0},                // S_SIGNBOARD
+	{SPR_SIGN, FF_PAPERSPRITE| 1, -1,         NULL,  0, 29, S_NULL, 0},               // S_EGGMANSIGN
+	{SPR_SIGN, FF_PAPERSPRITE|18, -1,         NULL,  0, 29, S_NULL, 0},               // S_CLEARSIGN
 
 	// Spike Ball
-	{SPR_SPIK, 0, 1, {NULL}, 0, 0, S_SPIKEBALL2, 0}, // S_SPIKEBALL1
-	{SPR_SPIK, 1, 1, {NULL}, 0, 0, S_SPIKEBALL3, 0}, // S_SPIKEBALL2
-	{SPR_SPIK, 2, 1, {NULL}, 0, 0, S_SPIKEBALL4, 0}, // S_SPIKEBALL3
-	{SPR_SPIK, 3, 1, {NULL}, 0, 0, S_SPIKEBALL5, 0}, // S_SPIKEBALL4
-	{SPR_SPIK, 4, 1, {NULL}, 0, 0, S_SPIKEBALL6, 0}, // S_SPIKEBALL5
-	{SPR_SPIK, 5, 1, {NULL}, 0, 0, S_SPIKEBALL7, 0}, // S_SPIKEBALL6
-	{SPR_SPIK, 6, 1, {NULL}, 0, 0, S_SPIKEBALL8, 0}, // S_SPIKEBALL7
-	{SPR_SPIK, 7, 1, {NULL}, 0, 0, S_SPIKEBALL1, 0}, // S_SPIKEBALL8
+	{SPR_SPIK, 0, 1, NULL, 0, 0, S_SPIKEBALL2, 0}, // S_SPIKEBALL1
+	{SPR_SPIK, 1, 1, NULL, 0, 0, S_SPIKEBALL3, 0}, // S_SPIKEBALL2
+	{SPR_SPIK, 2, 1, NULL, 0, 0, S_SPIKEBALL4, 0}, // S_SPIKEBALL3
+	{SPR_SPIK, 3, 1, NULL, 0, 0, S_SPIKEBALL5, 0}, // S_SPIKEBALL4
+	{SPR_SPIK, 4, 1, NULL, 0, 0, S_SPIKEBALL6, 0}, // S_SPIKEBALL5
+	{SPR_SPIK, 5, 1, NULL, 0, 0, S_SPIKEBALL7, 0}, // S_SPIKEBALL6
+	{SPR_SPIK, 6, 1, NULL, 0, 0, S_SPIKEBALL8, 0}, // S_SPIKEBALL7
+	{SPR_SPIK, 7, 1, NULL, 0, 0, S_SPIKEBALL1, 0}, // S_SPIKEBALL8
 
 	// Elemental Shield's Spawn
-	{SPR_SFLM, FF_FULLBRIGHT,   2, {NULL}, 0, 0, S_SPINFIRE2, 0}, // S_SPINFIRE1
-	{SPR_SFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_SPINFIRE3, 0}, // S_SPINFIRE2
-	{SPR_SFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_SPINFIRE4, 0}, // S_SPINFIRE3
-	{SPR_SFLM, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_SPINFIRE5, 0}, // S_SPINFIRE4
-	{SPR_SFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_SPINFIRE6, 0}, // S_SPINFIRE5
-	{SPR_SFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_SPINFIRE1, 0}, // S_SPINFIRE6
-
-	{SPR_TFLM, FF_FULLBRIGHT,   2, {NULL}, 0, 0, S_TEAM_SPINFIRE2, 0}, // S_TEAM_SPINFIRE1
-	{SPR_TFLM, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_TEAM_SPINFIRE3, 0}, // S_TEAM_SPINFIRE2
-	{SPR_TFLM, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_TEAM_SPINFIRE4, 0}, // S_TEAM_SPINFIRE3
-	{SPR_TFLM, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_TEAM_SPINFIRE5, 0}, // S_TEAM_SPINFIRE4
-	{SPR_TFLM, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_TEAM_SPINFIRE6, 0}, // S_TEAM_SPINFIRE5
-	{SPR_TFLM, FF_FULLBRIGHT|5, 2, {NULL}, 0, 0, S_TEAM_SPINFIRE1, 0}, // S_TEAM_SPINFIRE6
+	{SPR_SFLM, FF_FULLBRIGHT,   2, NULL, 0, 0, S_SPINFIRE2, 0}, // S_SPINFIRE1
+	{SPR_SFLM, FF_FULLBRIGHT|1, 2, NULL, 0, 0, S_SPINFIRE3, 0}, // S_SPINFIRE2
+	{SPR_SFLM, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_SPINFIRE4, 0}, // S_SPINFIRE3
+	{SPR_SFLM, FF_FULLBRIGHT|3, 2, NULL, 0, 0, S_SPINFIRE5, 0}, // S_SPINFIRE4
+	{SPR_SFLM, FF_FULLBRIGHT|4, 2, NULL, 0, 0, S_SPINFIRE6, 0}, // S_SPINFIRE5
+	{SPR_SFLM, FF_FULLBRIGHT|5, 2, NULL, 0, 0, S_SPINFIRE1, 0}, // S_SPINFIRE6
+
+	{SPR_TFLM, FF_FULLBRIGHT,   2, NULL, 0, 0, S_TEAM_SPINFIRE2, 0}, // S_TEAM_SPINFIRE1
+	{SPR_TFLM, FF_FULLBRIGHT|1, 2, NULL, 0, 0, S_TEAM_SPINFIRE3, 0}, // S_TEAM_SPINFIRE2
+	{SPR_TFLM, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_TEAM_SPINFIRE4, 0}, // S_TEAM_SPINFIRE3
+	{SPR_TFLM, FF_FULLBRIGHT|3, 2, NULL, 0, 0, S_TEAM_SPINFIRE5, 0}, // S_TEAM_SPINFIRE4
+	{SPR_TFLM, FF_FULLBRIGHT|4, 2, NULL, 0, 0, S_TEAM_SPINFIRE6, 0}, // S_TEAM_SPINFIRE5
+	{SPR_TFLM, FF_FULLBRIGHT|5, 2, NULL, 0, 0, S_TEAM_SPINFIRE1, 0}, // S_TEAM_SPINFIRE6
 
 	// Floor Spike
-	{SPR_USPK, 0,-1, {A_SpikeRetract}, 1, 0, S_SPIKE2, 0}, // S_SPIKE1 -- Fully extended
-	{SPR_USPK, 1, 2, {A_Pain},         0, 0, S_SPIKE3, 0}, // S_SPIKE2
-	{SPR_USPK, 2, 2, {NULL},           0, 0, S_SPIKE4, 0}, // S_SPIKE3
-	{SPR_USPK, 3,-1, {A_SpikeRetract}, 0, 0, S_SPIKE5, 0}, // S_SPIKE4 -- Fully retracted
-	{SPR_USPK, 2, 2, {A_Pain},         0, 0, S_SPIKE6, 0}, // S_SPIKE5
-	{SPR_USPK, 1, 2, {NULL},           0, 0, S_SPIKE1, 0}, // S_SPIKE6
-	{SPR_USPK, 4,-1, {NULL}, 0, 0, S_NULL, 0}, // S_SPIKED1 -- Busted spike particles
-	{SPR_USPK, 5,-1, {NULL}, 0, 0, S_NULL, 0}, // S_SPIKED2
+	{SPR_USPK, 0,-1, A_SpikeRetract, 1, 0, S_SPIKE2, 0}, // S_SPIKE1 -- Fully extended
+	{SPR_USPK, 1, 2, A_Pain,         0, 0, S_SPIKE3, 0}, // S_SPIKE2
+	{SPR_USPK, 2, 2, NULL,           0, 0, S_SPIKE4, 0}, // S_SPIKE3
+	{SPR_USPK, 3,-1, A_SpikeRetract, 0, 0, S_SPIKE5, 0}, // S_SPIKE4 -- Fully retracted
+	{SPR_USPK, 2, 2, A_Pain,         0, 0, S_SPIKE6, 0}, // S_SPIKE5
+	{SPR_USPK, 1, 2, NULL,           0, 0, S_SPIKE1, 0}, // S_SPIKE6
+	{SPR_USPK, 4,-1, NULL, 0, 0, S_NULL, 0}, // S_SPIKED1 -- Busted spike particles
+	{SPR_USPK, 5,-1, NULL, 0, 0, S_NULL, 0}, // S_SPIKED2
 
 	// Wall Spike
-	{SPR_WSPK, 0|FF_PAPERSPRITE,-1, {A_SpikeRetract}, 1, 0, S_WALLSPIKE2, 0}, // S_WALLSPIKE1 -- Fully extended
-	{SPR_WSPK, 1|FF_PAPERSPRITE, 2, {A_Pain},         0, 0, S_WALLSPIKE3, 0}, // S_WALLSPIKE2
-	{SPR_WSPK, 2|FF_PAPERSPRITE, 2, {NULL},           0, 0, S_WALLSPIKE4, 0}, // S_WALLSPIKE3
-	{SPR_WSPK, 3|FF_PAPERSPRITE,-1, {A_SpikeRetract}, 0, 0, S_WALLSPIKE5, 0}, // S_WALLSPIKE4 -- Fully retracted
-	{SPR_WSPK, 2|FF_PAPERSPRITE, 2, {A_Pain},         0, 0, S_WALLSPIKE6, 0}, // S_WALLSPIKE5
-	{SPR_WSPK, 1|FF_PAPERSPRITE, 2, {NULL},           0, 0, S_WALLSPIKE1, 0}, // S_WALLSPIKE6
-	{SPR_WSPB, 0|FF_PAPERSPRITE,-1, {NULL}, 0, 0, S_NULL, 0}, // S_WALLSPIKEBASE -- Base
-	{SPR_WSPK, 4,-1, {NULL}, 0, 0, S_NULL, 0}, // S_WALLSPIKED1 -- Busted spike particles
-	{SPR_WSPK, 5,-1, {NULL}, 0, 0, S_NULL, 0}, // S_WALLSPIKED2
+	{SPR_WSPK, 0|FF_PAPERSPRITE,-1, A_SpikeRetract, 1, 0, S_WALLSPIKE2, 0}, // S_WALLSPIKE1 -- Fully extended
+	{SPR_WSPK, 1|FF_PAPERSPRITE, 2, A_Pain,         0, 0, S_WALLSPIKE3, 0}, // S_WALLSPIKE2
+	{SPR_WSPK, 2|FF_PAPERSPRITE, 2, NULL,           0, 0, S_WALLSPIKE4, 0}, // S_WALLSPIKE3
+	{SPR_WSPK, 3|FF_PAPERSPRITE,-1, A_SpikeRetract, 0, 0, S_WALLSPIKE5, 0}, // S_WALLSPIKE4 -- Fully retracted
+	{SPR_WSPK, 2|FF_PAPERSPRITE, 2, A_Pain,         0, 0, S_WALLSPIKE6, 0}, // S_WALLSPIKE5
+	{SPR_WSPK, 1|FF_PAPERSPRITE, 2, NULL,           0, 0, S_WALLSPIKE1, 0}, // S_WALLSPIKE6
+	{SPR_WSPB, 0|FF_PAPERSPRITE,-1, NULL, 0, 0, S_NULL, 0}, // S_WALLSPIKEBASE -- Base
+	{SPR_WSPK, 4,-1, NULL, 0, 0, S_NULL, 0}, // S_WALLSPIKED1 -- Busted spike particles
+	{SPR_WSPK, 5,-1, NULL, 0, 0, S_NULL, 0}, // S_WALLSPIKED2
 
 	// Starpost
-	{SPR_STPT, 0            , -1, {NULL},  0, 0, S_NULL, 0},           // S_STARPOST_IDLE
-	{SPR_STPT, FF_ANIMATE|17, -1, {NULL},  5, 1, S_NULL, 0},           // S_STARPOST_FLASH
-	{SPR_STPT, FF_ANIMATE|13,  2, {NULL},  1, 1, S_STARPOST_SPIN, 0},  // S_STARPOST_STARTSPIN
-	{SPR_STPT, FF_ANIMATE|1 , 23, {NULL}, 11, 1, S_STARPOST_ENDSPIN, 0}, // S_STARPOST_SPIN
-	{SPR_STPT, FF_ANIMATE|15,  2, {NULL},  1, 1, S_STARPOST_FLASH, 0}, // S_STARPOST_ENDSPIN
+	{SPR_STPT, 0            , -1, NULL,  0, 0, S_NULL, 0},           // S_STARPOST_IDLE
+	{SPR_STPT, FF_ANIMATE|17, -1, NULL,  5, 1, S_NULL, 0},           // S_STARPOST_FLASH
+	{SPR_STPT, FF_ANIMATE|13,  2, NULL,  1, 1, S_STARPOST_SPIN, 0},  // S_STARPOST_STARTSPIN
+	{SPR_STPT, FF_ANIMATE|1 , 23, NULL, 11, 1, S_STARPOST_ENDSPIN, 0}, // S_STARPOST_SPIN
+	{SPR_STPT, FF_ANIMATE|15,  2, NULL,  1, 1, S_STARPOST_FLASH, 0}, // S_STARPOST_ENDSPIN
 
 	// Big floating mine
-	{SPR_BMNE, 0,  2, {A_Look},      ((224<<FRACBITS)|1), 0, S_BIGMINE_IDLE, 0},   // S_BIGMINE_IDLE
-	{SPR_BMNE, 1,  2, {A_MineRange}, 112,                 0, S_BIGMINE_ALERT2, 0}, // S_BIGMINE_ALERT1
-	{SPR_BMNE, 2,  2, {A_MineRange}, 112,                 0, S_BIGMINE_ALERT3, 0}, // S_BIGMINE_ALERT2
-	{SPR_BMNE, 0,  1, {A_Look},      ((224<<FRACBITS)|1), 1, S_BIGMINE_IDLE, 0},   // S_BIGMINE_ALERT3
-	{SPR_BMNE, 3, 25, {A_Pain},           0,            0, S_BIGMINE_SET2, 0},   // S_BIGMINE_SET1
-	{SPR_BMNE, 3, 10, {A_SetObjectFlags}, MF_SHOOTABLE, 1, S_BIGMINE_SET3, 0},   // S_BIGMINE_SET1
-	{SPR_BMNE, 3,  1, {A_MineExplode},    0,            0, S_BIGMINE_BLAST1, 0}, // S_BIGMINE_SET3
-	{SPR_BMNB,   FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_BIGMINE_BLAST2, 0}, // S_BIGMINE_BLAST1
-	{SPR_BMNB, 1|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_BIGMINE_BLAST3, 0}, // S_BIGMINE_BLAST2
-	{SPR_BMNB, 2|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_BIGMINE_BLAST4, 0}, // S_BIGMINE_BLAST3
-	{SPR_BMNB, 3|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_BIGMINE_BLAST5, 0}, // S_BIGMINE_BLAST4
-	{SPR_NULL, 0, 35, {NULL}, 0, 0, S_NULL, 0}, // S_BIGMINE_BLAST5
+	{SPR_BMNE, 0,  2, A_Look,      ((224<<FRACBITS)|1), 0, S_BIGMINE_IDLE, 0},   // S_BIGMINE_IDLE
+	{SPR_BMNE, 1,  2, A_MineRange, 112,                 0, S_BIGMINE_ALERT2, 0}, // S_BIGMINE_ALERT1
+	{SPR_BMNE, 2,  2, A_MineRange, 112,                 0, S_BIGMINE_ALERT3, 0}, // S_BIGMINE_ALERT2
+	{SPR_BMNE, 0,  1, A_Look,      ((224<<FRACBITS)|1), 1, S_BIGMINE_IDLE, 0},   // S_BIGMINE_ALERT3
+	{SPR_BMNE, 3, 25, A_Pain,           0,            0, S_BIGMINE_SET2, 0},   // S_BIGMINE_SET1
+	{SPR_BMNE, 3, 10, A_SetObjectFlags, MF_SHOOTABLE, 1, S_BIGMINE_SET3, 0},   // S_BIGMINE_SET1
+	{SPR_BMNE, 3,  1, A_MineExplode,    0,            0, S_BIGMINE_BLAST1, 0}, // S_BIGMINE_SET3
+	{SPR_BMNB,   FF_FULLBRIGHT, 2, NULL, 0, 0, S_BIGMINE_BLAST2, 0}, // S_BIGMINE_BLAST1
+	{SPR_BMNB, 1|FF_FULLBRIGHT, 2, NULL, 0, 0, S_BIGMINE_BLAST3, 0}, // S_BIGMINE_BLAST2
+	{SPR_BMNB, 2|FF_FULLBRIGHT, 1, NULL, 0, 0, S_BIGMINE_BLAST4, 0}, // S_BIGMINE_BLAST3
+	{SPR_BMNB, 3|FF_FULLBRIGHT, 1, NULL, 0, 0, S_BIGMINE_BLAST5, 0}, // S_BIGMINE_BLAST4
+	{SPR_NULL, 0, 35, NULL, 0, 0, S_NULL, 0}, // S_BIGMINE_BLAST5
 
 	// Cannon launcher
-	{SPR_NULL, 0, 1,    {A_FindTarget},     MT_PLAYER,         0, S_CANNONLAUNCHER2, 0}, // S_CANNONLAUNCHER1
-	{SPR_NULL, 0, 1,       {A_LobShot}, MT_CANNONBALL, 4*TICRATE, S_CANNONLAUNCHER3, 0}, // S_CANNONLAUNCHER2
-	{SPR_NULL, 0, 2, {A_SetRandomTics},     TICRATE/2, 3*TICRATE, S_CANNONLAUNCHER1, 0}, // S_CANNONLAUNCHER3
+	{SPR_NULL, 0, 1,    A_FindTarget,     MT_PLAYER,         0, S_CANNONLAUNCHER2, 0}, // S_CANNONLAUNCHER1
+	{SPR_NULL, 0, 1,       A_LobShot, MT_CANNONBALL, 4*TICRATE, S_CANNONLAUNCHER3, 0}, // S_CANNONLAUNCHER2
+	{SPR_NULL, 0, 2, A_SetRandomTics,     TICRATE/2, 3*TICRATE, S_CANNONLAUNCHER1, 0}, // S_CANNONLAUNCHER3
 
 	// Monitor Miscellany
-	{SPR_NSPK, 0, 16, {NULL}, 0, 0, S_BOXSPARKLE2, 0}, // S_BOXSPARKLE1
-	{SPR_NSPK, 1, 12, {NULL}, 0, 0, S_BOXSPARKLE3, 0}, // S_BOXSPARKLE2
-	{SPR_NSPK, 2,  8, {NULL}, 0, 0, S_BOXSPARKLE4, 0}, // S_BOXSPARKLE3
-	{SPR_NSPK, 3,  4, {NULL}, 0, 0, S_NULL, 0},        // S_BOXSPARKLE4
-
-	{SPR_MSTV, 0,  1, {NULL}, 0, 0, S_SPAWNSTATE, 0},  // S_BOX_FLICKER
-	{SPR_MSTV, 0,  4, {A_MonitorPop}, 0, 0, S_BOX_POP2, 0}, // S_BOX_POP1
-	{SPR_MSTV, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BOX_POP2
-
-	{SPR_XLTV, 0,  1, {NULL}, 0, 0, S_SPAWNSTATE, 0},  // S_GOLDBOX_FLICKER
-	{SPR_XLTV, 1, 89, {A_GoldMonitorPop}, 0, 0, S_GOLDBOX_OFF2, 0}, // S_GOLDBOX_OFF1
-	{SPR_XLTV, 2,  4, {A_PlayAttackSound}, 0, 0, S_GOLDBOX_OFF3, 0}, // S_GOLDBOX_OFF2
-	{SPR_XLTV, 3,  4, {NULL}, 0, 0, S_GOLDBOX_OFF4, 0}, // S_GOLDBOX_OFF3
-	{SPR_XLTV, 4,  4, {NULL}, 0, 0, S_GOLDBOX_OFF5, 0}, // S_GOLDBOX_OFF4
-	{SPR_XLTV, 5,  2, {NULL}, 0, 0, S_GOLDBOX_OFF6, 0}, // S_GOLDBOX_OFF5
-	{SPR_XLTV, 6,  2, {NULL}, 0, 0, S_GOLDBOX_OFF7, 0}, // S_GOLDBOX_OFF6
-	{SPR_XLTV, 6,  0, {A_GoldMonitorRestore}, 0, 0, S_SPAWNSTATE, 0}, // S_GOLDBOX_OFF7
+	{SPR_NSPK, 0, 16, NULL, 0, 0, S_BOXSPARKLE2, 0}, // S_BOXSPARKLE1
+	{SPR_NSPK, 1, 12, NULL, 0, 0, S_BOXSPARKLE3, 0}, // S_BOXSPARKLE2
+	{SPR_NSPK, 2,  8, NULL, 0, 0, S_BOXSPARKLE4, 0}, // S_BOXSPARKLE3
+	{SPR_NSPK, 3,  4, NULL, 0, 0, S_NULL, 0},        // S_BOXSPARKLE4
+
+	{SPR_MSTV, 0,  1, NULL, 0, 0, S_SPAWNSTATE, 0},  // S_BOX_FLICKER
+	{SPR_MSTV, 0,  4, A_MonitorPop, 0, 0, S_BOX_POP2, 0}, // S_BOX_POP1
+	{SPR_MSTV, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BOX_POP2
+
+	{SPR_XLTV, 0,  1, NULL, 0, 0, S_SPAWNSTATE, 0},  // S_GOLDBOX_FLICKER
+	{SPR_XLTV, 1, 89, A_GoldMonitorPop, 0, 0, S_GOLDBOX_OFF2, 0}, // S_GOLDBOX_OFF1
+	{SPR_XLTV, 2,  4, A_PlayAttackSound, 0, 0, S_GOLDBOX_OFF3, 0}, // S_GOLDBOX_OFF2
+	{SPR_XLTV, 3,  4, NULL, 0, 0, S_GOLDBOX_OFF4, 0}, // S_GOLDBOX_OFF3
+	{SPR_XLTV, 4,  4, NULL, 0, 0, S_GOLDBOX_OFF5, 0}, // S_GOLDBOX_OFF4
+	{SPR_XLTV, 5,  2, NULL, 0, 0, S_GOLDBOX_OFF6, 0}, // S_GOLDBOX_OFF5
+	{SPR_XLTV, 6,  2, NULL, 0, 0, S_GOLDBOX_OFF7, 0}, // S_GOLDBOX_OFF6
+	{SPR_XLTV, 6,  0, A_GoldMonitorRestore, 0, 0, S_SPAWNSTATE, 0}, // S_GOLDBOX_OFF7
 
 	// Monitor States (one per box)
-	{SPR_TVMY, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_MYSTERY_BOX
-	{SPR_TVRI, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_RING_BOX
-	{SPR_TVPI, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_PITY_BOX
-	{SPR_TVAT, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_ATTRACT_BOX
-	{SPR_TVFO, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_FORCE_BOX
-	{SPR_TVAR, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_ARMAGEDDON_BOX
-	{SPR_TVWW, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_WHIRLWIND_BOX
-	{SPR_TVEL, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_ELEMENTAL_BOX
-	{SPR_TVSS, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_SNEAKERS_BOX
-	{SPR_TVIV, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_INVULN_BOX
-	{SPR_TV1U, 0, 2, {A_1upThinker}, 0, 0, S_BOX_FLICKER, 0}, // S_1UP_BOX
-	{SPR_TVEG, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_EGGMAN_BOX
-	{SPR_TVMX, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_MIXUP_BOX
-	{SPR_TVGV, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_GRAVITY_BOX
-	{SPR_TVRC, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_RECYCLER_BOX
-	{SPR_TV1K, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_SCORE1K_BOX
-	{SPR_TVTK, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_SCORE10K_BOX
-	{SPR_TVFL, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_FLAMEAURA_BOX
-	{SPR_TVBB, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_BUBBLEWRAP_BOX
-	{SPR_TVZP, 0, 2, {NULL}, 0, 0, S_BOX_FLICKER, 0}, // S_THUNDERCOIN_BOX
+	{SPR_TVMY, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_MYSTERY_BOX
+	{SPR_TVRI, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_RING_BOX
+	{SPR_TVPI, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_PITY_BOX
+	{SPR_TVAT, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_ATTRACT_BOX
+	{SPR_TVFO, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_FORCE_BOX
+	{SPR_TVAR, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_ARMAGEDDON_BOX
+	{SPR_TVWW, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_WHIRLWIND_BOX
+	{SPR_TVEL, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_ELEMENTAL_BOX
+	{SPR_TVSS, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_SNEAKERS_BOX
+	{SPR_TVIV, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_INVULN_BOX
+	{SPR_TV1U, 0, 2, A_1upThinker, 0, 0, S_BOX_FLICKER, 0}, // S_1UP_BOX
+	{SPR_TVEG, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_EGGMAN_BOX
+	{SPR_TVMX, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_MIXUP_BOX
+	{SPR_TVGV, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_GRAVITY_BOX
+	{SPR_TVRC, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_RECYCLER_BOX
+	{SPR_TV1K, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_SCORE1K_BOX
+	{SPR_TVTK, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_SCORE10K_BOX
+	{SPR_TVFL, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_FLAMEAURA_BOX
+	{SPR_TVBB, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_BUBBLEWRAP_BOX
+	{SPR_TVZP, 0, 2, NULL, 0, 0, S_BOX_FLICKER, 0}, // S_THUNDERCOIN_BOX
 
 	// Gold Repeat Monitor States (one per box)
-	{SPR_TVPI, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_PITY_GOLDBOX
-	{SPR_TVAT, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ATTRACT_GOLDBOX
-	{SPR_TVFO, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_FORCE_GOLDBOX
-	{SPR_TVAR, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ARMAGEDDON_GOLDBOX
-	{SPR_TVWW, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_WHIRLWIND_GOLDBOX
-	{SPR_TVEL, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ELEMENTAL_GOLDBOX
-	{SPR_TVSS, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_SNEAKERS_GOLDBOX
-	{SPR_TVIV, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_INVULN_GOLDBOX
-	{SPR_TVEG, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_EGGMAN_GOLDBOX
-	{SPR_TVGV, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_GRAVITY_GOLDBOX
-	{SPR_TVFL, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_FLAMEAURA_GOLDBOX
-	{SPR_TVBB, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_BUBBLEWRAP_GOLDBOX
-	{SPR_TVZP, 1, 2, {A_GoldMonitorSparkle}, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_THUNDERCOIN_GOLDBOX
+	{SPR_TVPI, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_PITY_GOLDBOX
+	{SPR_TVAT, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ATTRACT_GOLDBOX
+	{SPR_TVFO, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_FORCE_GOLDBOX
+	{SPR_TVAR, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ARMAGEDDON_GOLDBOX
+	{SPR_TVWW, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_WHIRLWIND_GOLDBOX
+	{SPR_TVEL, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_ELEMENTAL_GOLDBOX
+	{SPR_TVSS, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_SNEAKERS_GOLDBOX
+	{SPR_TVIV, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_INVULN_GOLDBOX
+	{SPR_TVEG, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_EGGMAN_GOLDBOX
+	{SPR_TVGV, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_GRAVITY_GOLDBOX
+	{SPR_TVFL, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_FLAMEAURA_GOLDBOX
+	{SPR_TVBB, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_BUBBLEWRAP_GOLDBOX
+	{SPR_TVZP, 1, 2, A_GoldMonitorSparkle, 0, 0, S_GOLDBOX_FLICKER, 0}, // S_THUNDERCOIN_GOLDBOX
 
 	// Team Ring Boxes (these are special)
-	{SPR_TRRI, 0, 2, {NULL}, 0, 0, S_RING_REDBOX2, 0}, // S_RING_REDBOX1
-	{SPR_TRRI, 1, 1, {NULL}, 0, 0, S_RING_REDBOX1, 0}, // S_RING_REDBOX2
-	{SPR_TRRI, 1, 4, {A_MonitorPop}, 0, 0, S_REDBOX_POP2, 0},  // S_REDBOX_POP1
-	{SPR_TRRI, 2, -1, {NULL}, 0, 0, S_NULL, 0},        // S_REDBOX_POP2
+	{SPR_TRRI, 0, 2, NULL, 0, 0, S_RING_REDBOX2, 0}, // S_RING_REDBOX1
+	{SPR_TRRI, 1, 1, NULL, 0, 0, S_RING_REDBOX1, 0}, // S_RING_REDBOX2
+	{SPR_TRRI, 1, 4, A_MonitorPop, 0, 0, S_REDBOX_POP2, 0},  // S_REDBOX_POP1
+	{SPR_TRRI, 2, -1, NULL, 0, 0, S_NULL, 0},        // S_REDBOX_POP2
 
-	{SPR_TBRI, 0, 2, {NULL}, 0, 0, S_RING_BLUEBOX2, 0}, // S_RING_BLUEBOX1
-	{SPR_TBRI, 1, 1, {NULL}, 0, 0, S_RING_BLUEBOX1, 0}, // S_RING_BLUEBOX2
-	{SPR_TBRI, 1, 4, {A_MonitorPop}, 0, 0, S_BLUEBOX_POP2, 0},  // S_BLUEBOX_POP1
-	{SPR_TBRI, 2, -1, {NULL}, 0, 0, S_NULL, 0},         // S_BLUEBOX_POP2
+	{SPR_TBRI, 0, 2, NULL, 0, 0, S_RING_BLUEBOX2, 0}, // S_RING_BLUEBOX1
+	{SPR_TBRI, 1, 1, NULL, 0, 0, S_RING_BLUEBOX1, 0}, // S_RING_BLUEBOX2
+	{SPR_TBRI, 1, 4, A_MonitorPop, 0, 0, S_BLUEBOX_POP2, 0},  // S_BLUEBOX_POP1
+	{SPR_TBRI, 2, -1, NULL, 0, 0, S_NULL, 0},         // S_BLUEBOX_POP2
 
 	// Box Icons -- 2 states each, animation and action
-	{SPR_TVRI, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_RING_ICON2, 0}, // S_RING_ICON1
-	{SPR_TVRI, 2, 18, {A_RingBox}, 0, 0, S_NULL, 0}, // S_RING_ICON2
+	{SPR_TVRI, FF_ANIMATE|2, 18, NULL, 3, 4, S_RING_ICON2, 0}, // S_RING_ICON1
+	{SPR_TVRI, 2, 18, A_RingBox, 0, 0, S_NULL, 0}, // S_RING_ICON2
 
-	{SPR_TVPI, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_PITY_ICON2, 0}, // S_PITY_ICON1
-	{SPR_TVPI, 2, 18, {A_GiveShield}, SH_PITY, 0, S_NULL, 0},  // S_PITY_ICON2
+	{SPR_TVPI, FF_ANIMATE|2, 18, NULL, 3, 4, S_PITY_ICON2, 0}, // S_PITY_ICON1
+	{SPR_TVPI, 2, 18, A_GiveShield, SH_PITY, 0, S_NULL, 0},  // S_PITY_ICON2
 
-	{SPR_TVAT, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_ATTRACT_ICON2, 0}, // S_ATTRACT_ICON1
-	{SPR_TVAT, 2, 18, {A_GiveShield}, SH_ATTRACT, 0, S_NULL, 0}, // S_ATTRACT_ICON2
+	{SPR_TVAT, FF_ANIMATE|2, 18, NULL, 3, 4, S_ATTRACT_ICON2, 0}, // S_ATTRACT_ICON1
+	{SPR_TVAT, 2, 18, A_GiveShield, SH_ATTRACT, 0, S_NULL, 0}, // S_ATTRACT_ICON2
 
-	{SPR_TVFO, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_FORCE_ICON2, 0}, // S_FORCE_ICON1
-	{SPR_TVFO, 2, 18, {A_GiveShield}, SH_FORCE|1, 0, S_NULL, 0}, // S_FORCE_ICON2
+	{SPR_TVFO, FF_ANIMATE|2, 18, NULL, 3, 4, S_FORCE_ICON2, 0}, // S_FORCE_ICON1
+	{SPR_TVFO, 2, 18, A_GiveShield, SH_FORCE|1, 0, S_NULL, 0}, // S_FORCE_ICON2
 
-	{SPR_TVAR, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_ARMAGEDDON_ICON2, 0}, // S_ARMAGEDDON_ICON1
-	{SPR_TVAR, 2, 18, {A_GiveShield}, SH_ARMAGEDDON, 0, S_NULL, 0}, // S_ARMAGEDDON_ICON2
+	{SPR_TVAR, FF_ANIMATE|2, 18, NULL, 3, 4, S_ARMAGEDDON_ICON2, 0}, // S_ARMAGEDDON_ICON1
+	{SPR_TVAR, 2, 18, A_GiveShield, SH_ARMAGEDDON, 0, S_NULL, 0}, // S_ARMAGEDDON_ICON2
 
-	{SPR_TVWW, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_WHIRLWIND_ICON2, 0}, // S_WHIRLWIND_ICON1
-	{SPR_TVWW, 2, 18, {A_GiveShield}, SH_WHIRLWIND, 0, S_NULL, 0}, // S_WHIRLWIND_ICON2
+	{SPR_TVWW, FF_ANIMATE|2, 18, NULL, 3, 4, S_WHIRLWIND_ICON2, 0}, // S_WHIRLWIND_ICON1
+	{SPR_TVWW, 2, 18, A_GiveShield, SH_WHIRLWIND, 0, S_NULL, 0}, // S_WHIRLWIND_ICON2
 
-	{SPR_TVEL, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_ELEMENTAL_ICON2, 0}, // S_ELEMENTAL_ICON1
-	{SPR_TVEL, 2, 18, {A_GiveShield}, SH_ELEMENTAL, 0, S_NULL, 0}, // S_ELEMENTAL_ICON2
+	{SPR_TVEL, FF_ANIMATE|2, 18, NULL, 3, 4, S_ELEMENTAL_ICON2, 0}, // S_ELEMENTAL_ICON1
+	{SPR_TVEL, 2, 18, A_GiveShield, SH_ELEMENTAL, 0, S_NULL, 0}, // S_ELEMENTAL_ICON2
 
-	{SPR_TVSS, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_SNEAKERS_ICON2, 0}, // S_SNEAKERS_ICON1
-	{SPR_TVSS, 2, 18, {A_SuperSneakers}, 0, 0, S_NULL, 0}, // S_SNEAKERS_ICON2
+	{SPR_TVSS, FF_ANIMATE|2, 18, NULL, 3, 4, S_SNEAKERS_ICON2, 0}, // S_SNEAKERS_ICON1
+	{SPR_TVSS, 2, 18, A_SuperSneakers, 0, 0, S_NULL, 0}, // S_SNEAKERS_ICON2
 
-	{SPR_TVIV, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_INVULN_ICON2, 0}, // S_INVULN_ICON1
-	{SPR_TVIV, 2, 18, {A_Invincibility}, 0, 0, S_NULL, 0}, // S_INVULN_ICON2
+	{SPR_TVIV, FF_ANIMATE|2, 18, NULL, 3, 4, S_INVULN_ICON2, 0}, // S_INVULN_ICON1
+	{SPR_TVIV, 2, 18, A_Invincibility, 0, 0, S_NULL, 0}, // S_INVULN_ICON2
 
-	{SPR_TV1U, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_1UP_ICON2, 0}, // S_1UP_ICON1
-	{SPR_TV1U, 2, 18, {A_ExtraLife},  0, 0, S_NULL, 0},  // S_1UP_ICON2
+	{SPR_TV1U, FF_ANIMATE|2, 18, NULL, 3, 4, S_1UP_ICON2, 0}, // S_1UP_ICON1
+	{SPR_TV1U, 2, 18, A_ExtraLife,  0, 0, S_NULL, 0},  // S_1UP_ICON2
 
-	{SPR_TVEG, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_EGGMAN_ICON2, 0}, // S_EGGMAN_ICON1
-	{SPR_TVEG, 2, 18, {A_EggmanBox}, 0, 0, S_NULL, 0}, // S_EGGMAN_ICON2
+	{SPR_TVEG, FF_ANIMATE|2, 18, NULL, 3, 4, S_EGGMAN_ICON2, 0}, // S_EGGMAN_ICON1
+	{SPR_TVEG, 2, 18, A_EggmanBox, 0, 0, S_NULL, 0}, // S_EGGMAN_ICON2
 
-	{SPR_TVMX, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_MIXUP_ICON2, 0}, // S_MIXUP_ICON1
-	{SPR_TVMX, 2, 18, {A_MixUp}, 0, 0, S_NULL, 0}, // S_MIXUP_ICON2
+	{SPR_TVMX, FF_ANIMATE|2, 18, NULL, 3, 4, S_MIXUP_ICON2, 0}, // S_MIXUP_ICON1
+	{SPR_TVMX, 2, 18, A_MixUp, 0, 0, S_NULL, 0}, // S_MIXUP_ICON2
 
-	{SPR_TVGV, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_GRAVITY_ICON2, 0}, // S_GRAVITY_ICON1
-	{SPR_TVGV, 2, 18, {A_GravityBox}, 0, 0, S_NULL, 0}, // S_GRAVITY_ICON2
+	{SPR_TVGV, FF_ANIMATE|2, 18, NULL, 3, 4, S_GRAVITY_ICON2, 0}, // S_GRAVITY_ICON1
+	{SPR_TVGV, 2, 18, A_GravityBox, 0, 0, S_NULL, 0}, // S_GRAVITY_ICON2
 
-	{SPR_TVRC, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_RECYCLER_ICON2, 0}, // S_RECYCLER_ICON1
-	{SPR_TVRC, 2, 18, {A_RecyclePowers}, 0, 0, S_NULL, 0}, // S_RECYCLER_ICON2
+	{SPR_TVRC, FF_ANIMATE|2, 18, NULL, 3, 4, S_RECYCLER_ICON2, 0}, // S_RECYCLER_ICON1
+	{SPR_TVRC, 2, 18, A_RecyclePowers, 0, 0, S_NULL, 0}, // S_RECYCLER_ICON2
 
-	{SPR_TV1K, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_SCORE1K_ICON2, 0}, // S_SCORE1K_ICON1
-	{SPR_TV1K, 2, 18, {A_AwardScore}, 0, 0, S_NULL, 0}, // S_SCORE1K_ICON2
+	{SPR_TV1K, FF_ANIMATE|2, 18, NULL, 3, 4, S_SCORE1K_ICON2, 0}, // S_SCORE1K_ICON1
+	{SPR_TV1K, 2, 18, A_AwardScore, 0, 0, S_NULL, 0}, // S_SCORE1K_ICON2
 
-	{SPR_TVTK, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_SCORE10K_ICON2, 0}, // S_SCORE10K_ICON1
-	{SPR_TVTK, 2, 18, {A_AwardScore}, 0, 0, S_NULL, 0}, // S_SCORE10K_ICON2
+	{SPR_TVTK, FF_ANIMATE|2, 18, NULL, 3, 4, S_SCORE10K_ICON2, 0}, // S_SCORE10K_ICON1
+	{SPR_TVTK, 2, 18, A_AwardScore, 0, 0, S_NULL, 0}, // S_SCORE10K_ICON2
 
-	{SPR_TVFL, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_FLAMEAURA_ICON2, 0}, // S_FLAMEAURA_ICON1
-	{SPR_TVFL, 2, 18, {A_GiveShield}, SH_FLAMEAURA, 0, S_NULL, 0}, // S_FLAMEAURA_ICON2
+	{SPR_TVFL, FF_ANIMATE|2, 18, NULL, 3, 4, S_FLAMEAURA_ICON2, 0}, // S_FLAMEAURA_ICON1
+	{SPR_TVFL, 2, 18, A_GiveShield, SH_FLAMEAURA, 0, S_NULL, 0}, // S_FLAMEAURA_ICON2
 
-	{SPR_TVBB, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_BUBBLEWRAP_ICON2, 0}, // S_BUBBLEWRAP_ICON1
-	{SPR_TVBB, 2, 18, {A_GiveShield}, SH_BUBBLEWRAP, 0, S_NULL, 0}, // S_BUBBLEWRAP_ICON2
+	{SPR_TVBB, FF_ANIMATE|2, 18, NULL, 3, 4, S_BUBBLEWRAP_ICON2, 0}, // S_BUBBLEWRAP_ICON1
+	{SPR_TVBB, 2, 18, A_GiveShield, SH_BUBBLEWRAP, 0, S_NULL, 0}, // S_BUBBLEWRAP_ICON2
 
-	{SPR_TVZP, FF_ANIMATE|2, 18, {NULL}, 3, 4, S_THUNDERCOIN_ICON2, 0}, // S_THUNDERCOIN_ICON1
-	{SPR_TVZP, 2, 18, {A_GiveShield}, SH_THUNDERCOIN, 0, S_NULL, 0}, // S_THUNDERCOIN_ICON2
+	{SPR_TVZP, FF_ANIMATE|2, 18, NULL, 3, 4, S_THUNDERCOIN_ICON2, 0}, // S_THUNDERCOIN_ICON1
+	{SPR_TVZP, 2, 18, A_GiveShield, SH_THUNDERCOIN, 0, S_NULL, 0}, // S_THUNDERCOIN_ICON2
 
 	// ---
 
-	{SPR_MISL, FF_FULLBRIGHT, 1, {A_SmokeTrailer}, MT_SMOKE, 0, S_ROCKET, 0}, // S_ROCKET
+	{SPR_MISL, FF_FULLBRIGHT, 1, A_SmokeTrailer, MT_SMOKE, 0, S_ROCKET, 0}, // S_ROCKET
 
-	{SPR_LASR, FF_FULLBRIGHT|0, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LASER
-	{SPR_LASR, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LASER2
-	{SPR_LASR, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LASERFLASH
+	{SPR_LASR, FF_FULLBRIGHT|0, 2, NULL, 0, 0, S_NULL, 0}, // S_LASER
+	{SPR_LASR, FF_FULLBRIGHT|1, 2, NULL, 0, 0, S_NULL, 0}, // S_LASER2
+	{SPR_LASR, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_NULL, 0}, // S_LASERFLASH
 
-	{SPR_LASF,                           FF_FULLBRIGHT|0,       2,           {NULL}, 0, 0, S_LASERFLAME2, 0}, // S_LASERFLAME1
-	{SPR_LASF,                           FF_FULLBRIGHT|1,       1, {A_ChangeHeight}, 156*FRACUNIT, 3, S_LASERFLAME3, 0}, // S_LASERFLAME2
-	{SPR_LASF,                           FF_FULLBRIGHT|2,       0, {A_ChangeHeight}, 32*FRACUNIT, 3, S_LASERFLAME4, 0}, // S_LASERFLAME3
-	{SPR_LASF, FF_ANIMATE|FF_PAPERSPRITE|FF_FULLBRIGHT|2,       4,           {NULL}, 1, 2, S_LASERFLAME5, 0}, // S_LASERFLAME4
-	{SPR_LASF, FF_ANIMATE|FF_PAPERSPRITE|FF_FULLBRIGHT|4,      28,           {NULL}, 2, 2, S_NULL, 0}, // S_LASERFLAME5
+	{SPR_LASF,                           FF_FULLBRIGHT|0,       2,           NULL, 0, 0, S_LASERFLAME2, 0}, // S_LASERFLAME1
+	{SPR_LASF,                           FF_FULLBRIGHT|1,       1, A_ChangeHeight, 156*FRACUNIT, 3, S_LASERFLAME3, 0}, // S_LASERFLAME2
+	{SPR_LASF,                           FF_FULLBRIGHT|2,       0, A_ChangeHeight, 32*FRACUNIT, 3, S_LASERFLAME4, 0}, // S_LASERFLAME3
+	{SPR_LASF, FF_ANIMATE|FF_PAPERSPRITE|FF_FULLBRIGHT|2,       4,           NULL, 1, 2, S_LASERFLAME5, 0}, // S_LASERFLAME4
+	{SPR_LASF, FF_ANIMATE|FF_PAPERSPRITE|FF_FULLBRIGHT|4,      28,           NULL, 2, 2, S_NULL, 0}, // S_LASERFLAME5
 
-	{SPR_TORP, 0, 1, {A_SmokeTrailer}, MT_SMOKE, 0, S_TORPEDO, 0}, // S_TORPEDO
+	{SPR_TORP, 0, 1, A_SmokeTrailer, MT_SMOKE, 0, S_TORPEDO, 0}, // S_TORPEDO
 
-	{SPR_ENRG, FF_FULLBRIGHT|FF_TRANS30, 1, {NULL}, 0, 0, S_ENERGYBALL2, 0}, // S_ENERGYBALL1
-	{SPR_NULL, 0, 1, {NULL}, 0, 0, S_ENERGYBALL1, 0}, // S_ENERGYBALL2
+	{SPR_ENRG, FF_FULLBRIGHT|FF_TRANS30, 1, NULL, 0, 0, S_ENERGYBALL2, 0}, // S_ENERGYBALL1
+	{SPR_NULL, 0, 1, NULL, 0, 0, S_ENERGYBALL1, 0}, // S_ENERGYBALL2
 
 	// Skim Mine (also dropped by Jetty-Syn bomber)
-	{SPR_MINE, 0, -1, {NULL}, 0, 0, S_NULL, 0},           // S_MINE1
-	{SPR_MINE, 1, 1, {A_Fall}, 0, 0, S_MINE_BOOM2, 0},    // S_MINE_BOOM1
-	{SPR_MINE, 2, 3, {A_Scream}, 0, 0, S_MINE_BOOM3, 0},  // S_MINE_BOOM2
-	{SPR_MINE, 3, 3, {A_Explode}, 0, 0, S_MINE_BOOM4, 0}, // S_MINE_BOOM3
-	{SPR_MINE, 4, 3, {NULL}, 0, 0, S_NULL, 0},            // S_MINE_BOOM4
+	{SPR_MINE, 0, -1, NULL, 0, 0, S_NULL, 0},           // S_MINE1
+	{SPR_MINE, 1, 1, A_Fall, 0, 0, S_MINE_BOOM2, 0},    // S_MINE_BOOM1
+	{SPR_MINE, 2, 3, A_Scream, 0, 0, S_MINE_BOOM3, 0},  // S_MINE_BOOM2
+	{SPR_MINE, 3, 3, A_Explode, 0, 0, S_MINE_BOOM4, 0}, // S_MINE_BOOM3
+	{SPR_MINE, 4, 3, NULL, 0, 0, S_NULL, 0},            // S_MINE_BOOM4
 
 	// Jetty-Syn Bullet
-	{SPR_JBUL, FF_FULLBRIGHT,   1, {NULL}, 0, 0, S_JETBULLET2, 0}, // S_JETBULLET1
-	{SPR_JBUL, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_JETBULLET1, 0}, // S_JETBULLET2
+	{SPR_JBUL, FF_FULLBRIGHT,   1, NULL, 0, 0, S_JETBULLET2, 0}, // S_JETBULLET1
+	{SPR_JBUL, FF_FULLBRIGHT|1, 1, NULL, 0, 0, S_JETBULLET1, 0}, // S_JETBULLET2
 
-	{SPR_TRLS, FF_FULLBRIGHT,   1, {NULL}, 0, 0, S_TURRETLASER, 0},          // S_TURRETLASER
-	{SPR_TRLS, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_TURRETLASEREXPLODE2, 0},  // S_TURRETLASEREXPLODE1
-	{SPR_TRLS, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_NULL, 0},                 // S_TURRETLASEREXPLODE2
+	{SPR_TRLS, FF_FULLBRIGHT,   1, NULL, 0, 0, S_TURRETLASER, 0},          // S_TURRETLASER
+	{SPR_TRLS, FF_FULLBRIGHT|1, 2, NULL, 0, 0, S_TURRETLASEREXPLODE2, 0},  // S_TURRETLASEREXPLODE1
+	{SPR_TRLS, FF_FULLBRIGHT|2, 2, NULL, 0, 0, S_NULL, 0},                 // S_TURRETLASEREXPLODE2
 
-	{SPR_CBLL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CANNONBALL1
+	{SPR_CBLL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CANNONBALL1
 
-	{SPR_AROW, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_ARROW
-	{SPR_AROW, FF_ANIMATE, TICRATE, {A_ArrowBonks}, 7, 2, S_NULL, 0}, // S_ARROWBONK
+	{SPR_AROW, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_ARROW
+	{SPR_AROW, FF_ANIMATE, TICRATE, A_ArrowBonks, 7, 2, S_NULL, 0}, // S_ARROWBONK
 
-	{SPR_CFIR, FF_FULLBRIGHT|FF_ANIMATE, -1, {NULL}, 5, 2, S_NULL, 0}, // S_DEMONFIRE
+	{SPR_CFIR, FF_FULLBRIGHT|FF_ANIMATE, -1, NULL, 5, 2, S_NULL, 0}, // S_DEMONFIRE
 
-	{SPR_LETR, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LETTER
+	{SPR_LETR, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_LETTER
 
 	// Tutorial scenery
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALLEAF2, 0}, // S_TUTORIALLEAF1
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALLEAF3, 0}, // S_TUTORIALLEAF2
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALLEAF4, 0}, // S_TUTORIALLEAF3
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALLEAF5, 0}, // S_TUTORIALLEAF4
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALLEAF6, 0}, // S_TUTORIALLEAF5
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALLEAF7, 0}, // S_TUTORIALLEAF6
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALLEAF8, 0}, // S_TUTORIALLEAF7
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALLEAF9, 0}, // S_TUTORIALLEAF8
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALLEAF10, 0}, // S_TUTORIALLEAF9
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALLEAF11, 0}, // S_TUTORIALLEAF10
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALLEAF12, 0}, // S_TUTORIALLEAF11
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALLEAF13, 0}, // S_TUTORIALLEAF12
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALLEAF14, 0}, // S_TUTORIALLEAF13
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALLEAF15, 0}, // S_TUTORIALLEAF14
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALLEAF16, 0}, // S_TUTORIALLEAF15
-	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALLEAF1, 0}, // S_TUTORIALLEAF16
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALFLOWER2, 0}, // S_TUTORIALFLOWER1
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALFLOWER3, 0}, // S_TUTORIALFLOWER2
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALFLOWER4, 0}, // S_TUTORIALFLOWER3
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALFLOWER5, 0}, // S_TUTORIALFLOWER4
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALFLOWER6, 0}, // S_TUTORIALFLOWER5
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALFLOWER7, 0}, // S_TUTORIALFLOWER6
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALFLOWER8, 0}, // S_TUTORIALFLOWER7
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALFLOWER9, 0}, // S_TUTORIALFLOWER8
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALFLOWER10, 0}, // S_TUTORIALFLOWER9
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALFLOWER11, 0}, // S_TUTORIALFLOWER10
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALFLOWER12, 0}, // S_TUTORIALFLOWER11
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALFLOWER13, 0}, // S_TUTORIALFLOWER12
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALFLOWER14, 0}, // S_TUTORIALFLOWER13
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALFLOWER15, 0}, // S_TUTORIALFLOWER14
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALFLOWER16, 0}, // S_TUTORIALFLOWER15
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALFLOWER1, 0}, // S_TUTORIALFLOWER16
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF2, 0}, // S_TUTORIALFLOWERF1
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF3, 0}, // S_TUTORIALFLOWERF2
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF4, 0}, // S_TUTORIALFLOWERF3
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF5, 0}, // S_TUTORIALFLOWERF4
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF6, 0}, // S_TUTORIALFLOWERF5
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF7, 0}, // S_TUTORIALFLOWERF6
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF8, 0}, // S_TUTORIALFLOWERF7
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF9, 0}, // S_TUTORIALFLOWERF8
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|7, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF10, 0}, // S_TUTORIALFLOWERF9
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|6, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF11, 0}, // S_TUTORIALFLOWERF10
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|5, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF12, 0}, // S_TUTORIALFLOWERF11
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|4, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF13, 0}, // S_TUTORIALFLOWERF12
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|3, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF14, 0}, // S_TUTORIALFLOWERF13
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|2, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF15, 0}, // S_TUTORIALFLOWERF14
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|1, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF16, 0}, // S_TUTORIALFLOWERF15
-	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|0, 3, {NULL}, 0, 0, S_TUTORIALFLOWERF1, 0}, // S_TUTORIALFLOWERF16
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, NULL, 0, 0, S_TUTORIALLEAF2, 0}, // S_TUTORIALLEAF1
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, NULL, 0, 0, S_TUTORIALLEAF3, 0}, // S_TUTORIALLEAF2
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, NULL, 0, 0, S_TUTORIALLEAF4, 0}, // S_TUTORIALLEAF3
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, NULL, 0, 0, S_TUTORIALLEAF5, 0}, // S_TUTORIALLEAF4
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, NULL, 0, 0, S_TUTORIALLEAF6, 0}, // S_TUTORIALLEAF5
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, NULL, 0, 0, S_TUTORIALLEAF7, 0}, // S_TUTORIALLEAF6
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, NULL, 0, 0, S_TUTORIALLEAF8, 0}, // S_TUTORIALLEAF7
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, NULL, 0, 0, S_TUTORIALLEAF9, 0}, // S_TUTORIALLEAF8
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, NULL, 0, 0, S_TUTORIALLEAF10, 0}, // S_TUTORIALLEAF9
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, NULL, 0, 0, S_TUTORIALLEAF11, 0}, // S_TUTORIALLEAF10
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, NULL, 0, 0, S_TUTORIALLEAF12, 0}, // S_TUTORIALLEAF11
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, NULL, 0, 0, S_TUTORIALLEAF13, 0}, // S_TUTORIALLEAF12
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, NULL, 0, 0, S_TUTORIALLEAF14, 0}, // S_TUTORIALLEAF13
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, NULL, 0, 0, S_TUTORIALLEAF15, 0}, // S_TUTORIALLEAF14
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, NULL, 0, 0, S_TUTORIALLEAF16, 0}, // S_TUTORIALLEAF15
+	{SPR_TUPL, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, NULL, 0, 0, S_TUTORIALLEAF1, 0}, // S_TUTORIALLEAF16
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, NULL, 0, 0, S_TUTORIALFLOWER2, 0}, // S_TUTORIALFLOWER1
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, NULL, 0, 0, S_TUTORIALFLOWER3, 0}, // S_TUTORIALFLOWER2
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, NULL, 0, 0, S_TUTORIALFLOWER4, 0}, // S_TUTORIALFLOWER3
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, NULL, 0, 0, S_TUTORIALFLOWER5, 0}, // S_TUTORIALFLOWER4
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, NULL, 0, 0, S_TUTORIALFLOWER6, 0}, // S_TUTORIALFLOWER5
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, NULL, 0, 0, S_TUTORIALFLOWER7, 0}, // S_TUTORIALFLOWER6
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, NULL, 0, 0, S_TUTORIALFLOWER8, 0}, // S_TUTORIALFLOWER7
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, NULL, 0, 0, S_TUTORIALFLOWER9, 0}, // S_TUTORIALFLOWER8
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|7, 3, NULL, 0, 0, S_TUTORIALFLOWER10, 0}, // S_TUTORIALFLOWER9
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|6, 3, NULL, 0, 0, S_TUTORIALFLOWER11, 0}, // S_TUTORIALFLOWER10
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|5, 3, NULL, 0, 0, S_TUTORIALFLOWER12, 0}, // S_TUTORIALFLOWER11
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|4, 3, NULL, 0, 0, S_TUTORIALFLOWER13, 0}, // S_TUTORIALFLOWER12
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|3, 3, NULL, 0, 0, S_TUTORIALFLOWER14, 0}, // S_TUTORIALFLOWER13
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|2, 3, NULL, 0, 0, S_TUTORIALFLOWER15, 0}, // S_TUTORIALFLOWER14
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|1, 3, NULL, 0, 0, S_TUTORIALFLOWER16, 0}, // S_TUTORIALFLOWER15
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_PAPERSPRITE|0, 3, NULL, 0, 0, S_TUTORIALFLOWER1, 0}, // S_TUTORIALFLOWER16
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|0, 3, NULL, 0, 0, S_TUTORIALFLOWERF2, 0}, // S_TUTORIALFLOWERF1
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|1, 3, NULL, 0, 0, S_TUTORIALFLOWERF3, 0}, // S_TUTORIALFLOWERF2
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|2, 3, NULL, 0, 0, S_TUTORIALFLOWERF4, 0}, // S_TUTORIALFLOWERF3
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|3, 3, NULL, 0, 0, S_TUTORIALFLOWERF5, 0}, // S_TUTORIALFLOWERF4
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|4, 3, NULL, 0, 0, S_TUTORIALFLOWERF6, 0}, // S_TUTORIALFLOWERF5
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|5, 3, NULL, 0, 0, S_TUTORIALFLOWERF7, 0}, // S_TUTORIALFLOWERF6
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|6, 3, NULL, 0, 0, S_TUTORIALFLOWERF8, 0}, // S_TUTORIALFLOWERF7
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|7, 3, NULL, 0, 0, S_TUTORIALFLOWERF9, 0}, // S_TUTORIALFLOWERF8
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|7, 3, NULL, 0, 0, S_TUTORIALFLOWERF10, 0}, // S_TUTORIALFLOWERF9
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|6, 3, NULL, 0, 0, S_TUTORIALFLOWERF11, 0}, // S_TUTORIALFLOWERF10
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|5, 3, NULL, 0, 0, S_TUTORIALFLOWERF12, 0}, // S_TUTORIALFLOWERF11
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|4, 3, NULL, 0, 0, S_TUTORIALFLOWERF13, 0}, // S_TUTORIALFLOWERF12
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|3, 3, NULL, 0, 0, S_TUTORIALFLOWERF14, 0}, // S_TUTORIALFLOWERF13
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|2, 3, NULL, 0, 0, S_TUTORIALFLOWERF15, 0}, // S_TUTORIALFLOWERF14
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|1, 3, NULL, 0, 0, S_TUTORIALFLOWERF16, 0}, // S_TUTORIALFLOWERF15
+	{SPR_TUPF, FF_SEMIBRIGHT|FF_ADD|FF_FLOORSPRITE|0, 3, NULL, 0, 0, S_TUTORIALFLOWERF1, 0}, // S_TUTORIALFLOWERF16
 
 	// GFZ flowers
-	{SPR_FWR1, FF_ANIMATE, -1, {NULL},  7, 3, S_NULL, 0}, // S_GFZFLOWERA
-	{SPR_FWR2, FF_ANIMATE, -1, {NULL}, 19, 3, S_NULL, 0}, // S_GFZFLOWERB
-	{SPR_FWR3, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_GFZFLOWERC
+	{SPR_FWR1, FF_ANIMATE, -1, NULL,  7, 3, S_NULL, 0}, // S_GFZFLOWERA
+	{SPR_FWR2, FF_ANIMATE, -1, NULL, 19, 3, S_NULL, 0}, // S_GFZFLOWERB
+	{SPR_FWR3, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_GFZFLOWERC
 
-	{SPR_BUS3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLUEBERRYBUSH
-	{SPR_BUS1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BERRYBUSH
-	{SPR_BUS2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BUSH
+	{SPR_BUS3, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BLUEBERRYBUSH
+	{SPR_BUS1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BERRYBUSH
+	{SPR_BUS2, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BUSH
 
 	// Trees
-	{SPR_TRE1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_GFZTREE
-	{SPR_TRE1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_GFZBERRYTREE
-	{SPR_TRE1, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_GFZCHERRYTREE
-	{SPR_TRE2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CHECKERTREE
-	{SPR_TRE2, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CHECKERSUNSETTREE
-	{SPR_TRE3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FHZTREE
-	{SPR_TRE3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FHZPINKTREE
-	{SPR_TRE4, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_POLYGONTREE
-	{SPR_TRE5, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BUSHTREE
-	{SPR_TRE5, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BUSHREDTREE
-	{SPR_TRE6, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SPRINGTREE
+	{SPR_TRE1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_GFZTREE
+	{SPR_TRE1, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_GFZBERRYTREE
+	{SPR_TRE1, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_GFZCHERRYTREE
+	{SPR_TRE2, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CHECKERTREE
+	{SPR_TRE2, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_CHECKERSUNSETTREE
+	{SPR_TRE3, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_FHZTREE
+	{SPR_TRE3, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_FHZPINKTREE
+	{SPR_TRE4, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_POLYGONTREE
+	{SPR_TRE5, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BUSHTREE
+	{SPR_TRE5, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BUSHREDTREE
+	{SPR_TRE6, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SPRINGTREE
 
 	// THZ flowers
-	{SPR_THZP, FF_ANIMATE, -1, {NULL},  7, 4, S_NULL, 0}, // S_THZFLOWERA
-	{SPR_FWR5, FF_ANIMATE, -1, {NULL}, 19, 2, S_NULL, 0}, // S_THZFLOWERB
-	{SPR_FWR6, FF_ANIMATE, -1, {NULL}, 19, 2, S_NULL, 0}, // S_THZFLOWERC
+	{SPR_THZP, FF_ANIMATE, -1, NULL,  7, 4, S_NULL, 0}, // S_THZFLOWERA
+	{SPR_FWR5, FF_ANIMATE, -1, NULL, 19, 2, S_NULL, 0}, // S_THZFLOWERB
+	{SPR_FWR6, FF_ANIMATE, -1, NULL, 19, 2, S_NULL, 0}, // S_THZFLOWERC
 
 	// THZ Steam Whistle tree/bush
-	{SPR_THZT, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_THZTREE
-	{SPR_THZT,  1|FF_PAPERSPRITE, 40, {NULL}, 0, 0, S_THZTREEBRANCH2, 0}, // S_THZTREEBRANCH1
-	{SPR_THZT,  2|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH3, 0}, // S_THZTREEBRANCH2
-	{SPR_THZT,  3|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH4, 0}, // S_THZTREEBRANCH3
-	{SPR_THZT,  4|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH5, 0}, // S_THZTREEBRANCH4
-	{SPR_THZT,  5|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH6, 0}, // S_THZTREEBRANCH5
-	{SPR_THZT,  6|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH7, 0}, // S_THZTREEBRANCH6
-	{SPR_THZT,  7|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH8, 0}, // S_THZTREEBRANCH7
-	{SPR_THZT,  8|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH9, 0}, // S_THZTREEBRANCH8
-	{SPR_THZT,  9|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH10, 0}, // S_THZTREEBRANCH9
-	{SPR_THZT, 10|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH11, 0}, // S_THZTREEBRANCH10
-	{SPR_THZT, 11|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH12, 0}, // S_THZTREEBRANCH11
-	{SPR_THZT, 12|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH13, 0}, // S_THZTREEBRANCH12
-	{SPR_THZT, 13|FF_PAPERSPRITE,  4, {NULL}, 0, 0, S_THZTREEBRANCH1, 0}, // S_THZTREEBRANCH13
+	{SPR_THZT, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_THZTREE
+	{SPR_THZT,  1|FF_PAPERSPRITE, 40, NULL, 0, 0, S_THZTREEBRANCH2, 0}, // S_THZTREEBRANCH1
+	{SPR_THZT,  2|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH3, 0}, // S_THZTREEBRANCH2
+	{SPR_THZT,  3|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH4, 0}, // S_THZTREEBRANCH3
+	{SPR_THZT,  4|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH5, 0}, // S_THZTREEBRANCH4
+	{SPR_THZT,  5|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH6, 0}, // S_THZTREEBRANCH5
+	{SPR_THZT,  6|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH7, 0}, // S_THZTREEBRANCH6
+	{SPR_THZT,  7|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH8, 0}, // S_THZTREEBRANCH7
+	{SPR_THZT,  8|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH9, 0}, // S_THZTREEBRANCH8
+	{SPR_THZT,  9|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH10, 0}, // S_THZTREEBRANCH9
+	{SPR_THZT, 10|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH11, 0}, // S_THZTREEBRANCH10
+	{SPR_THZT, 11|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH12, 0}, // S_THZTREEBRANCH11
+	{SPR_THZT, 12|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH13, 0}, // S_THZTREEBRANCH12
+	{SPR_THZT, 13|FF_PAPERSPRITE,  4, NULL, 0, 0, S_THZTREEBRANCH1, 0}, // S_THZTREEBRANCH13
 
 	// THZ Alarm
-	{SPR_ALRM, FF_FULLBRIGHT, 35, {A_Scream}, 0, 0, S_ALARM1, 0}, // S_ALARM1
+	{SPR_ALRM, FF_FULLBRIGHT, 35, A_Scream, 0, 0, S_ALARM1, 0}, // S_ALARM1
 
 	// Deep Sea Gargoyle
-	{SPR_GARG, 0, -1, {NULL}, 0, 0, S_NULL, 0},  // S_GARGOYLE
-	{SPR_GARG, 1, -1, {NULL}, 0, 0, S_NULL, 0},  // S_BIGGARGOYLE
+	{SPR_GARG, 0, -1, NULL, 0, 0, S_NULL, 0},  // S_GARGOYLE
+	{SPR_GARG, 1, -1, NULL, 0, 0, S_NULL, 0},  // S_BIGGARGOYLE
 
 	// DSZ Seaweed
-	{SPR_SEWE, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 26, 3, S_SEAWEED1, 0}, // S_SEAWEED1
-	{SPR_SEWE, 1, 5, {NULL}, 0, 0, S_SEAWEED3, 0}, // S_SEAWEED2
-	{SPR_SEWE, 2, 5, {NULL}, 0, 0, S_SEAWEED4, 0}, // S_SEAWEED3
-	{SPR_SEWE, 3, 5, {NULL}, 0, 0, S_SEAWEED5, 0}, // S_SEAWEED4
-	{SPR_SEWE, 4, 5, {NULL}, 0, 0, S_SEAWEED6, 0}, // S_SEAWEED5
-	{SPR_SEWE, 5, 5, {NULL}, 0, 0, S_SEAWEED1, 0}, // S_SEAWEED6
+	{SPR_SEWE, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 26, 3, S_SEAWEED1, 0}, // S_SEAWEED1
+	{SPR_SEWE, 1, 5, NULL, 0, 0, S_SEAWEED3, 0}, // S_SEAWEED2
+	{SPR_SEWE, 2, 5, NULL, 0, 0, S_SEAWEED4, 0}, // S_SEAWEED3
+	{SPR_SEWE, 3, 5, NULL, 0, 0, S_SEAWEED5, 0}, // S_SEAWEED4
+	{SPR_SEWE, 4, 5, NULL, 0, 0, S_SEAWEED6, 0}, // S_SEAWEED5
+	{SPR_SEWE, 5, 5, NULL, 0, 0, S_SEAWEED1, 0}, // S_SEAWEED6
 
 	// Dripping water
-	{SPR_NULL, FF_TRANS30  , 3*TICRATE, {NULL},                  0, 0, S_DRIPA2, 0}, // S_DRIPA1
-	{SPR_DRIP, FF_TRANS30  ,         2, {NULL},                  0, 0, S_DRIPA3, 0}, // S_DRIPA2
-	{SPR_DRIP, FF_TRANS30|1,         2, {NULL},                  0, 0, S_DRIPA4, 0}, // S_DRIPA3
-	{SPR_DRIP, FF_TRANS30|2,         2, {A_SpawnObjectRelative}, 0, MT_WATERDROP, S_DRIPA1, 0}, // S_DRIPA4
-	{SPR_DRIP, FF_TRANS30|3,        -1, {NULL},                  0, 0, S_DRIPB1, 0}, // S_DRIPB1
-	{SPR_DRIP, FF_TRANS30|4,         1, {NULL},                  0, 0, S_DRIPC2, 0}, // S_DRIPC1
-	{SPR_DRIP, FF_TRANS30|5,         1, {NULL},                  0, 0,   S_NULL, 0}, // S_DRIPC2
+	{SPR_NULL, FF_TRANS30  , 3*TICRATE, NULL,                  0, 0, S_DRIPA2, 0}, // S_DRIPA1
+	{SPR_DRIP, FF_TRANS30  ,         2, NULL,                  0, 0, S_DRIPA3, 0}, // S_DRIPA2
+	{SPR_DRIP, FF_TRANS30|1,         2, NULL,                  0, 0, S_DRIPA4, 0}, // S_DRIPA3
+	{SPR_DRIP, FF_TRANS30|2,         2, A_SpawnObjectRelative, 0, MT_WATERDROP, S_DRIPA1, 0}, // S_DRIPA4
+	{SPR_DRIP, FF_TRANS30|3,        -1, NULL,                  0, 0, S_DRIPB1, 0}, // S_DRIPB1
+	{SPR_DRIP, FF_TRANS30|4,         1, NULL,                  0, 0, S_DRIPC2, 0}, // S_DRIPC1
+	{SPR_DRIP, FF_TRANS30|5,         1, NULL,                  0, 0,   S_NULL, 0}, // S_DRIPC2
 
 	// Coral
-	{SPR_CORL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORAL1
-	{SPR_CORL, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORAL2
-	{SPR_CORL, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORAL3
-	{SPR_CORL, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORAL4
-	{SPR_CORL, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORAL5
+	{SPR_CORL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CORAL1
+	{SPR_CORL, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_CORAL2
+	{SPR_CORL, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_CORAL3
+	{SPR_CORL, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_CORAL4
+	{SPR_CORL, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_CORAL5
 
 	// Blue Crystal
-	{SPR_BCRY, FF_TRANS30, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLUECRYSTAL1
+	{SPR_BCRY, FF_TRANS30, -1, NULL, 0, 0, S_NULL, 0}, // S_BLUECRYSTAL1
 
 	// Kelp
-	{SPR_KELP, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_KELP
+	{SPR_KELP, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_KELP
 
 	// Animated algae
-	{SPR_ALGA, 0, 1, {A_ConnectToGround}, MT_ANIMALGAESEG, 0, S_ANIMALGAETOP2, 0}, // S_ANIMALGAETOP1
-	{SPR_ALGA, 0|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 11, 4, S_NULL, 0},          // S_ANIMALGAETOP2
-	{SPR_ALGB, 0|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 11, 4, S_NULL, 0},          // S_ANIMALGAESEG
+	{SPR_ALGA, 0, 1, A_ConnectToGround, MT_ANIMALGAESEG, 0, S_ANIMALGAETOP2, 0}, // S_ANIMALGAETOP1
+	{SPR_ALGA, 0|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 11, 4, S_NULL, 0},          // S_ANIMALGAETOP2
+	{SPR_ALGB, 0|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 11, 4, S_NULL, 0},          // S_ANIMALGAESEG
 
 	// DSZ Stalagmites
-	{SPR_DSTG, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_DSZSTALAGMITE
-	{SPR_DSTG, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_DSZ2STALAGMITE
+	{SPR_DSTG, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_DSZSTALAGMITE
+	{SPR_DSTG, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_DSZ2STALAGMITE
 
 	// DSZ Light beam
-	{SPR_LIBE, 0|FF_TRANS80|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {A_LightBeamReset}, 0, 0, S_LIGHTBEAM2, 0}, // S_LIGHTBEAM1
-	{SPR_LIBE, 0|FF_TRANS70|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_LIGHTBEAM3, 0},  // S_LIGHTBEAM2
-	{SPR_LIBE, 0|FF_TRANS60|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_LIGHTBEAM4, 0},  // S_LIGHTBEAM3
-	{SPR_LIBE, 0|FF_TRANS50|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_LIGHTBEAM5, 0},  // S_LIGHTBEAM4
-	{SPR_LIBE, 0|FF_TRANS40|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_LIGHTBEAM6, 0},  // S_LIGHTBEAM5
-	{SPR_LIBE, 0|FF_TRANS30|FF_FULLBRIGHT|FF_PAPERSPRITE, 9, {NULL}, 0, 0, S_LIGHTBEAM7, 0},  // S_LIGHTBEAM6
-	{SPR_LIBE, 0|FF_TRANS40|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_LIGHTBEAM8, 0},  // S_LIGHTBEAM7
-	{SPR_LIBE, 0|FF_TRANS50|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_LIGHTBEAM9, 0},  // S_LIGHTBEAM8
-	{SPR_LIBE, 0|FF_TRANS60|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_LIGHTBEAM10, 0}, // S_LIGHTBEAM9
-	{SPR_LIBE, 0|FF_TRANS70|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_LIGHTBEAM11, 0}, // S_LIGHTBEAM10
-	{SPR_LIBE, 0|FF_TRANS80|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, {NULL}, 0, 0, S_LIGHTBEAM12, 0}, // S_LIGHTBEAM11
-	{SPR_NULL, 0, 2, {A_SetRandomTics}, 4, 35, S_LIGHTBEAM1, 0}, // S_LIGHTBEAM12
+	{SPR_LIBE, 0|FF_TRANS80|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, A_LightBeamReset, 0, 0, S_LIGHTBEAM2, 0}, // S_LIGHTBEAM1
+	{SPR_LIBE, 0|FF_TRANS70|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, NULL, 0, 0, S_LIGHTBEAM3, 0},  // S_LIGHTBEAM2
+	{SPR_LIBE, 0|FF_TRANS60|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, NULL, 0, 0, S_LIGHTBEAM4, 0},  // S_LIGHTBEAM3
+	{SPR_LIBE, 0|FF_TRANS50|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, NULL, 0, 0, S_LIGHTBEAM5, 0},  // S_LIGHTBEAM4
+	{SPR_LIBE, 0|FF_TRANS40|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, NULL, 0, 0, S_LIGHTBEAM6, 0},  // S_LIGHTBEAM5
+	{SPR_LIBE, 0|FF_TRANS30|FF_FULLBRIGHT|FF_PAPERSPRITE, 9, NULL, 0, 0, S_LIGHTBEAM7, 0},  // S_LIGHTBEAM6
+	{SPR_LIBE, 0|FF_TRANS40|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, NULL, 0, 0, S_LIGHTBEAM8, 0},  // S_LIGHTBEAM7
+	{SPR_LIBE, 0|FF_TRANS50|FF_FULLBRIGHT|FF_PAPERSPRITE, 2, NULL, 0, 0, S_LIGHTBEAM9, 0},  // S_LIGHTBEAM8
+	{SPR_LIBE, 0|FF_TRANS60|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, NULL, 0, 0, S_LIGHTBEAM10, 0}, // S_LIGHTBEAM9
+	{SPR_LIBE, 0|FF_TRANS70|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, NULL, 0, 0, S_LIGHTBEAM11, 0}, // S_LIGHTBEAM10
+	{SPR_LIBE, 0|FF_TRANS80|FF_FULLBRIGHT|FF_PAPERSPRITE, 4, NULL, 0, 0, S_LIGHTBEAM12, 0}, // S_LIGHTBEAM11
+	{SPR_NULL, 0, 2, A_SetRandomTics, 4, 35, S_LIGHTBEAM1, 0}, // S_LIGHTBEAM12
 
 	// CEZ Chain
-	{SPR_CHAN, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZCHAIN
+	{SPR_CHAN, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZCHAIN
 
 	// Flame
-	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE,       3*8, {A_FlameParticle}, 7, 3, S_FLAME, 0}, // S_FLAME
-	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|8, TICRATE,            {NULL}, 3, 3, S_NULL, 0},  // S_FLAMEPARTICLE
-	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE,        -1,            {NULL}, 7, 3, S_NULL, 0},  // S_FLAMEREST
+	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE,       3*8, A_FlameParticle, 7, 3, S_FLAME, 0}, // S_FLAME
+	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE|8, TICRATE,            NULL, 3, 3, S_NULL, 0},  // S_FLAMEPARTICLE
+	{SPR_FLAM, FF_FULLBRIGHT|FF_ANIMATE,        -1,            NULL, 7, 3, S_NULL, 0},  // S_FLAMEREST
 
 	// Eggman statue
-	{SPR_ESTA, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EGGSTATUE1
+	{SPR_ESTA, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_EGGSTATUE1
 
 	// Hidden sling appears
-	{SPR_NULL, 0, -1, {NULL},          0, 0, S_SLING2, 0}, // S_SLING1
-	{SPR_NULL, 0, -1, {A_SlingAppear}, 0, 0, S_NULL, 0},   // S_SLING2
+	{SPR_NULL, 0, -1, NULL,          0, 0, S_SLING2, 0}, // S_SLING1
+	{SPR_NULL, 0, -1, A_SlingAppear, 0, 0, S_NULL, 0},   // S_SLING2
 
 	// CEZ maces and chains
-	{SPR_SMCH, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SMALLMACECHAIN
-	{SPR_BMCH, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIGMACECHAIN
-	{SPR_SMCE, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SMALLMACE
-	{SPR_BMCE, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIGMACE
-	{SPR_SMCH, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SMALLGRABCHAIN
-	{SPR_BMCH, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIGGRABCHAIN
+	{SPR_SMCH, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SMALLMACECHAIN
+	{SPR_BMCH, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BIGMACECHAIN
+	{SPR_SMCE, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SMALLMACE
+	{SPR_BMCE, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BIGMACE
+	{SPR_SMCH, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_SMALLGRABCHAIN
+	{SPR_BMCH, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BIGGRABCHAIN
 
 	// Blue spring on a ball
-	{SPR_BSPB, 0, -1, {NULL},   0, 0, S_NULL, 0},            // S_BLUESPRINGBALL
-	{SPR_BSPB, 4,  4, {A_Pain}, 0, 0, S_BLUESPRINGBALL3, 0}, // S_BLUESPRINGBALL2
-	{SPR_BSPB, 3,  1, {NULL},   0, 0, S_BLUESPRINGBALL4, 0}, // S_BLUESPRINGBALL3
-	{SPR_BSPB, 2,  1, {NULL},   0, 0, S_BLUESPRINGBALL5, 0}, // S_BLUESPRINGBALL4
-	{SPR_BSPB, 1,  1, {NULL},   0, 0, S_BLUESPRINGBALL, 0},  // S_BLUESPRINGBALL5
+	{SPR_BSPB, 0, -1, NULL,   0, 0, S_NULL, 0},            // S_BLUESPRINGBALL
+	{SPR_BSPB, 4,  4, A_Pain, 0, 0, S_BLUESPRINGBALL3, 0}, // S_BLUESPRINGBALL2
+	{SPR_BSPB, 3,  1, NULL,   0, 0, S_BLUESPRINGBALL4, 0}, // S_BLUESPRINGBALL3
+	{SPR_BSPB, 2,  1, NULL,   0, 0, S_BLUESPRINGBALL5, 0}, // S_BLUESPRINGBALL4
+	{SPR_BSPB, 1,  1, NULL,   0, 0, S_BLUESPRINGBALL, 0},  // S_BLUESPRINGBALL5
 
 	// Yellow spring on a ball
-	{SPR_YSPB, 0, -1, {NULL},   0, 0, S_NULL, 0},              // S_YELLOWSPRINGBALL
-	{SPR_YSPB, 4,  4, {A_Pain}, 0, 0, S_YELLOWSPRINGBALL3, 0}, // S_YELLOWSPRINGBALL2
-	{SPR_YSPB, 3,  1, {NULL},   0, 0, S_YELLOWSPRINGBALL4, 0}, // S_YELLOWSPRINGBALL3
-	{SPR_YSPB, 2,  1, {NULL},   0, 0, S_YELLOWSPRINGBALL5, 0}, // S_YELLOWSPRINGBALL4
-	{SPR_YSPB, 1,  1, {NULL},   0, 0, S_YELLOWSPRINGBALL, 0},  // S_YELLOWSPRINGBALL5
+	{SPR_YSPB, 0, -1, NULL,   0, 0, S_NULL, 0},              // S_YELLOWSPRINGBALL
+	{SPR_YSPB, 4,  4, A_Pain, 0, 0, S_YELLOWSPRINGBALL3, 0}, // S_YELLOWSPRINGBALL2
+	{SPR_YSPB, 3,  1, NULL,   0, 0, S_YELLOWSPRINGBALL4, 0}, // S_YELLOWSPRINGBALL3
+	{SPR_YSPB, 2,  1, NULL,   0, 0, S_YELLOWSPRINGBALL5, 0}, // S_YELLOWSPRINGBALL4
+	{SPR_YSPB, 1,  1, NULL,   0, 0, S_YELLOWSPRINGBALL, 0},  // S_YELLOWSPRINGBALL5
 
 	// Red spring on a ball
-	{SPR_RSPB, 0, -1, {NULL},   0, 0, S_NULL, 0},           // S_REDSPRINGBALL
-	{SPR_RSPB, 4,  4, {A_Pain}, 0, 0, S_REDSPRINGBALL3, 0}, // S_REDSPRINGBALL2
-	{SPR_RSPB, 3,  1, {NULL},   0, 0, S_REDSPRINGBALL4, 0}, // S_REDSPRINGBALL3
-	{SPR_RSPB, 2,  1, {NULL},   0, 0, S_REDSPRINGBALL5, 0}, // S_REDSPRINGBALL4
-	{SPR_RSPB, 1,  1, {NULL},   0, 0, S_REDSPRINGBALL, 0},  // S_REDSPRINGBALL5
+	{SPR_RSPB, 0, -1, NULL,   0, 0, S_NULL, 0},           // S_REDSPRINGBALL
+	{SPR_RSPB, 4,  4, A_Pain, 0, 0, S_REDSPRINGBALL3, 0}, // S_REDSPRINGBALL2
+	{SPR_RSPB, 3,  1, NULL,   0, 0, S_REDSPRINGBALL4, 0}, // S_REDSPRINGBALL3
+	{SPR_RSPB, 2,  1, NULL,   0, 0, S_REDSPRINGBALL5, 0}, // S_REDSPRINGBALL4
+	{SPR_RSPB, 1,  1, NULL,   0, 0, S_REDSPRINGBALL, 0},  // S_REDSPRINGBALL5
 
 	// Small Firebar
-	{SPR_SFBR, FF_FULLBRIGHT,     1, {NULL},            0, 0, S_SMALLFIREBAR2, 0},  // S_SMALLFIREBAR1
-	{SPR_SFBR, FF_FULLBRIGHT| 1,  1, {NULL},            0, 0, S_SMALLFIREBAR3, 0},  // S_SMALLFIREBAR2
-	{SPR_SFBR, FF_FULLBRIGHT| 2,  1, {A_FlameParticle}, 0, 0, S_SMALLFIREBAR4, 0},  // S_SMALLFIREBAR3
-	{SPR_SFBR, FF_FULLBRIGHT| 3,  1, {NULL},            0, 0, S_SMALLFIREBAR5, 0},  // S_SMALLFIREBAR4
-	{SPR_SFBR, FF_FULLBRIGHT| 4,  1, {NULL},            0, 0, S_SMALLFIREBAR6, 0},  // S_SMALLFIREBAR5
-	{SPR_SFBR, FF_FULLBRIGHT| 5,  1, {NULL},            0, 0, S_SMALLFIREBAR7, 0},  // S_SMALLFIREBAR6
-	{SPR_SFBR, FF_FULLBRIGHT| 6,  1, {A_FlameParticle}, 0, 0, S_SMALLFIREBAR8, 0},  // S_SMALLFIREBAR7
-	{SPR_SFBR, FF_FULLBRIGHT| 7,  1, {NULL},            0, 0, S_SMALLFIREBAR9, 0},  // S_SMALLFIREBAR8
-	{SPR_SFBR, FF_FULLBRIGHT| 8,  1, {NULL},            0, 0, S_SMALLFIREBAR10, 0}, // S_SMALLFIREBAR9
-	{SPR_SFBR, FF_FULLBRIGHT| 9,  1, {NULL},            0, 0, S_SMALLFIREBAR11, 0}, // S_SMALLFIREBAR10
-	{SPR_SFBR, FF_FULLBRIGHT|10,  1, {A_FlameParticle}, 0, 0, S_SMALLFIREBAR12, 0}, // S_SMALLFIREBAR11
-	{SPR_SFBR, FF_FULLBRIGHT|11,  1, {NULL},            0, 0, S_SMALLFIREBAR13, 0}, // S_SMALLFIREBAR12
-	{SPR_SFBR, FF_FULLBRIGHT|12,  1, {NULL},            0, 0, S_SMALLFIREBAR14, 0}, // S_SMALLFIREBAR13
-	{SPR_SFBR, FF_FULLBRIGHT|13,  1, {NULL},            0, 0, S_SMALLFIREBAR15, 0}, // S_SMALLFIREBAR14
-	{SPR_SFBR, FF_FULLBRIGHT|14,  1, {A_FlameParticle}, 0, 0, S_SMALLFIREBAR16, 0}, // S_SMALLFIREBAR15
-	{SPR_SFBR, FF_FULLBRIGHT|15,  1, {NULL},            0, 0, S_SMALLFIREBAR1, 0},  // S_SMALLFIREBAR16
+	{SPR_SFBR, FF_FULLBRIGHT,     1, NULL,            0, 0, S_SMALLFIREBAR2, 0},  // S_SMALLFIREBAR1
+	{SPR_SFBR, FF_FULLBRIGHT| 1,  1, NULL,            0, 0, S_SMALLFIREBAR3, 0},  // S_SMALLFIREBAR2
+	{SPR_SFBR, FF_FULLBRIGHT| 2,  1, A_FlameParticle, 0, 0, S_SMALLFIREBAR4, 0},  // S_SMALLFIREBAR3
+	{SPR_SFBR, FF_FULLBRIGHT| 3,  1, NULL,            0, 0, S_SMALLFIREBAR5, 0},  // S_SMALLFIREBAR4
+	{SPR_SFBR, FF_FULLBRIGHT| 4,  1, NULL,            0, 0, S_SMALLFIREBAR6, 0},  // S_SMALLFIREBAR5
+	{SPR_SFBR, FF_FULLBRIGHT| 5,  1, NULL,            0, 0, S_SMALLFIREBAR7, 0},  // S_SMALLFIREBAR6
+	{SPR_SFBR, FF_FULLBRIGHT| 6,  1, A_FlameParticle, 0, 0, S_SMALLFIREBAR8, 0},  // S_SMALLFIREBAR7
+	{SPR_SFBR, FF_FULLBRIGHT| 7,  1, NULL,            0, 0, S_SMALLFIREBAR9, 0},  // S_SMALLFIREBAR8
+	{SPR_SFBR, FF_FULLBRIGHT| 8,  1, NULL,            0, 0, S_SMALLFIREBAR10, 0}, // S_SMALLFIREBAR9
+	{SPR_SFBR, FF_FULLBRIGHT| 9,  1, NULL,            0, 0, S_SMALLFIREBAR11, 0}, // S_SMALLFIREBAR10
+	{SPR_SFBR, FF_FULLBRIGHT|10,  1, A_FlameParticle, 0, 0, S_SMALLFIREBAR12, 0}, // S_SMALLFIREBAR11
+	{SPR_SFBR, FF_FULLBRIGHT|11,  1, NULL,            0, 0, S_SMALLFIREBAR13, 0}, // S_SMALLFIREBAR12
+	{SPR_SFBR, FF_FULLBRIGHT|12,  1, NULL,            0, 0, S_SMALLFIREBAR14, 0}, // S_SMALLFIREBAR13
+	{SPR_SFBR, FF_FULLBRIGHT|13,  1, NULL,            0, 0, S_SMALLFIREBAR15, 0}, // S_SMALLFIREBAR14
+	{SPR_SFBR, FF_FULLBRIGHT|14,  1, A_FlameParticle, 0, 0, S_SMALLFIREBAR16, 0}, // S_SMALLFIREBAR15
+	{SPR_SFBR, FF_FULLBRIGHT|15,  1, NULL,            0, 0, S_SMALLFIREBAR1, 0},  // S_SMALLFIREBAR16
 
 	// Big Firebar
-	{SPR_BFBR, FF_FULLBRIGHT,     1, {NULL},            0, 0, S_BIGFIREBAR2, 0},  // S_BIGFIREBAR1
-	{SPR_BFBR, FF_FULLBRIGHT| 1,  1, {NULL},            0, 0, S_BIGFIREBAR3, 0},  // S_BIGFIREBAR2
-	{SPR_BFBR, FF_FULLBRIGHT| 2,  1, {A_FlameParticle}, 0, 0, S_BIGFIREBAR4, 0},  // S_BIGFIREBAR3
-	{SPR_BFBR, FF_FULLBRIGHT| 3,  1, {NULL},            0, 0, S_BIGFIREBAR5, 0},  // S_BIGFIREBAR4
-	{SPR_BFBR, FF_FULLBRIGHT| 4,  1, {NULL},            0, 0, S_BIGFIREBAR6, 0},  // S_BIGFIREBAR5
-	{SPR_BFBR, FF_FULLBRIGHT| 5,  1, {NULL},            0, 0, S_BIGFIREBAR7, 0},  // S_BIGFIREBAR6
-	{SPR_BFBR, FF_FULLBRIGHT| 6,  1, {A_FlameParticle}, 0, 0, S_BIGFIREBAR8, 0},  // S_BIGFIREBAR7
-	{SPR_BFBR, FF_FULLBRIGHT| 7,  1, {NULL},            0, 0, S_BIGFIREBAR9, 0},  // S_BIGFIREBAR8
-	{SPR_BFBR, FF_FULLBRIGHT| 8,  1, {NULL},            0, 0, S_BIGFIREBAR10, 0}, // S_BIGFIREBAR9
-	{SPR_BFBR, FF_FULLBRIGHT| 9,  1, {NULL},            0, 0, S_BIGFIREBAR11, 0}, // S_BIGFIREBAR10
-	{SPR_BFBR, FF_FULLBRIGHT|10,  1, {A_FlameParticle}, 0, 0, S_BIGFIREBAR12, 0}, // S_BIGFIREBAR11
-	{SPR_BFBR, FF_FULLBRIGHT|11,  1, {NULL},            0, 0, S_BIGFIREBAR13, 0}, // S_BIGFIREBAR12
-	{SPR_BFBR, FF_FULLBRIGHT|12,  1, {NULL},            0, 0, S_BIGFIREBAR14, 0}, // S_BIGFIREBAR13
-	{SPR_BFBR, FF_FULLBRIGHT|13,  1, {NULL},            0, 0, S_BIGFIREBAR15, 0}, // S_BIGFIREBAR14
-	{SPR_BFBR, FF_FULLBRIGHT|14,  1, {A_FlameParticle}, 0, 0, S_BIGFIREBAR16, 0}, // S_BIGFIREBAR15
-	{SPR_BFBR, FF_FULLBRIGHT|15,  1, {NULL},            0, 0, S_BIGFIREBAR1, 0},  // S_BIGFIREBAR16
+	{SPR_BFBR, FF_FULLBRIGHT,     1, NULL,            0, 0, S_BIGFIREBAR2, 0},  // S_BIGFIREBAR1
+	{SPR_BFBR, FF_FULLBRIGHT| 1,  1, NULL,            0, 0, S_BIGFIREBAR3, 0},  // S_BIGFIREBAR2
+	{SPR_BFBR, FF_FULLBRIGHT| 2,  1, A_FlameParticle, 0, 0, S_BIGFIREBAR4, 0},  // S_BIGFIREBAR3
+	{SPR_BFBR, FF_FULLBRIGHT| 3,  1, NULL,            0, 0, S_BIGFIREBAR5, 0},  // S_BIGFIREBAR4
+	{SPR_BFBR, FF_FULLBRIGHT| 4,  1, NULL,            0, 0, S_BIGFIREBAR6, 0},  // S_BIGFIREBAR5
+	{SPR_BFBR, FF_FULLBRIGHT| 5,  1, NULL,            0, 0, S_BIGFIREBAR7, 0},  // S_BIGFIREBAR6
+	{SPR_BFBR, FF_FULLBRIGHT| 6,  1, A_FlameParticle, 0, 0, S_BIGFIREBAR8, 0},  // S_BIGFIREBAR7
+	{SPR_BFBR, FF_FULLBRIGHT| 7,  1, NULL,            0, 0, S_BIGFIREBAR9, 0},  // S_BIGFIREBAR8
+	{SPR_BFBR, FF_FULLBRIGHT| 8,  1, NULL,            0, 0, S_BIGFIREBAR10, 0}, // S_BIGFIREBAR9
+	{SPR_BFBR, FF_FULLBRIGHT| 9,  1, NULL,            0, 0, S_BIGFIREBAR11, 0}, // S_BIGFIREBAR10
+	{SPR_BFBR, FF_FULLBRIGHT|10,  1, A_FlameParticle, 0, 0, S_BIGFIREBAR12, 0}, // S_BIGFIREBAR11
+	{SPR_BFBR, FF_FULLBRIGHT|11,  1, NULL,            0, 0, S_BIGFIREBAR13, 0}, // S_BIGFIREBAR12
+	{SPR_BFBR, FF_FULLBRIGHT|12,  1, NULL,            0, 0, S_BIGFIREBAR14, 0}, // S_BIGFIREBAR13
+	{SPR_BFBR, FF_FULLBRIGHT|13,  1, NULL,            0, 0, S_BIGFIREBAR15, 0}, // S_BIGFIREBAR14
+	{SPR_BFBR, FF_FULLBRIGHT|14,  1, A_FlameParticle, 0, 0, S_BIGFIREBAR16, 0}, // S_BIGFIREBAR15
+	{SPR_BFBR, FF_FULLBRIGHT|15,  1, NULL,            0, 0, S_BIGFIREBAR1, 0},  // S_BIGFIREBAR16
 
-	{SPR_FWR4, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZFLOWER
-	{SPR_BANR, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZPOLE
+	{SPR_FWR4, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZFLOWER
+	{SPR_BANR, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZPOLE
 
-	{SPR_BANR, FF_PAPERSPRITE|1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZBANNER1
-	{SPR_BANR, FF_PAPERSPRITE|2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZBANNER2
+	{SPR_BANR, FF_PAPERSPRITE|1, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZBANNER1
+	{SPR_BANR, FF_PAPERSPRITE|2, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZBANNER2
 
-	{SPR_PINE, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_PINETREE
-	{SPR_CEZB, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZBUSH1
-	{SPR_CEZB, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CEZBUSH2
+	{SPR_PINE, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_PINETREE
+	{SPR_CEZB, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZBUSH1
+	{SPR_CEZB, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_CEZBUSH2
 
-	{SPR_CNDL, FF_FULLBRIGHT,   -1, {NULL}, 0, 0, S_NULL, 0}, // S_CANDLE
-	{SPR_CNDL, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CANDLEPRICKET
+	{SPR_CNDL, FF_FULLBRIGHT,   -1, NULL, 0, 0, S_NULL, 0}, // S_CANDLE
+	{SPR_CNDL, FF_FULLBRIGHT|1, -1, NULL, 0, 0, S_NULL, 0}, // S_CANDLEPRICKET
 
-	{SPR_FLMH, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FLAMEHOLDER
+	{SPR_FLMH, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_FLAMEHOLDER
 
-	{SPR_CTRC, FF_FULLBRIGHT|FF_ANIMATE, 8*3, {A_FlameParticle}, 3, 3, S_FIRETORCH, 0}, // S_FIRETORCH
+	{SPR_CTRC, FF_FULLBRIGHT|FF_ANIMATE, 8*3, A_FlameParticle, 3, 3, S_FIRETORCH, 0}, // S_FIRETORCH
 
-	{SPR_CFLG,                0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_WAVINGFLAG
-	{SPR_CFLG, FF_PAPERSPRITE|1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_WAVINGFLAGSEG1
-	{SPR_CFLG, FF_PAPERSPRITE|2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_WAVINGFLAGSEG2
+	{SPR_CFLG,                0, -1, NULL, 0, 0, S_NULL, 0}, // S_WAVINGFLAG
+	{SPR_CFLG, FF_PAPERSPRITE|1, -1, NULL, 0, 0, S_NULL, 0}, // S_WAVINGFLAGSEG1
+	{SPR_CFLG, FF_PAPERSPRITE|2, -1, NULL, 0, 0, S_NULL, 0}, // S_WAVINGFLAGSEG2
 
-	{SPR_CSTA, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CRAWLASTATUE
+	{SPR_CSTA, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CRAWLASTATUE
 
-	{SPR_CBBS, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FACESTABBERSTATUE
+	{SPR_CBBS, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_FACESTABBERSTATUE
 
-	{SPR_CBBS, 0, 5, {A_Look}, 768*FRACUNIT, 0, S_SUSPICIOUSFACESTABBERSTATUE_WAIT, 0},   // S_SUSPICIOUSFACESTABBERSTATUE_WAIT
-	{SPR_CBBS, FF_ANIMATE, 23, {NULL},    6, 1, S_SUSPICIOUSFACESTABBERSTATUE_BURST2, 0}, // S_SUSPICIOUSFACESTABBERSTATUE_BURST1
-	{SPR_NULL, 0, 40, {A_StatueBurst}, MT_FACESTABBER, S_FACESTABBER_CHARGE2, S_NULL, 0}, // S_SUSPICIOUSFACESTABBERSTATUE_BURST2
+	{SPR_CBBS, 0, 5, A_Look, 768*FRACUNIT, 0, S_SUSPICIOUSFACESTABBERSTATUE_WAIT, 0},   // S_SUSPICIOUSFACESTABBERSTATUE_WAIT
+	{SPR_CBBS, FF_ANIMATE, 23, NULL,    6, 1, S_SUSPICIOUSFACESTABBERSTATUE_BURST2, 0}, // S_SUSPICIOUSFACESTABBERSTATUE_BURST1
+	{SPR_NULL, 0, 40, A_StatueBurst, MT_FACESTABBER, S_FACESTABBER_CHARGE2, S_NULL, 0}, // S_SUSPICIOUSFACESTABBERSTATUE_BURST2
 
-	{SPR_CABR, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BRAMBLES
+	{SPR_CABR, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BRAMBLES
 
 	// Big Tumbleweed
-	{SPR_BTBL, 0, -1, {NULL}, 0, 0, S_NULL, 0},                // S_BIGTUMBLEWEED
-	{SPR_BTBL, 0,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL2, 0}, // S_BIGTUMBLEWEED_ROLL1
-	{SPR_BTBL, 1,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL3, 0}, // S_BIGTUMBLEWEED_ROLL2
-	{SPR_BTBL, 2,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL4, 0}, // S_BIGTUMBLEWEED_ROLL3
-	{SPR_BTBL, 3,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL5, 0}, // S_BIGTUMBLEWEED_ROLL4
-	{SPR_BTBL, 4,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL6, 0}, // S_BIGTUMBLEWEED_ROLL5
-	{SPR_BTBL, 5,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL7, 0}, // S_BIGTUMBLEWEED_ROLL6
-	{SPR_BTBL, 6,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL8, 0}, // S_BIGTUMBLEWEED_ROLL7
-	{SPR_BTBL, 7,  5, {NULL}, 0, 0, S_BIGTUMBLEWEED_ROLL1, 0}, // S_BIGTUMBLEWEED_ROLL8
+	{SPR_BTBL, 0, -1, NULL, 0, 0, S_NULL, 0},                // S_BIGTUMBLEWEED
+	{SPR_BTBL, 0,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL2, 0}, // S_BIGTUMBLEWEED_ROLL1
+	{SPR_BTBL, 1,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL3, 0}, // S_BIGTUMBLEWEED_ROLL2
+	{SPR_BTBL, 2,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL4, 0}, // S_BIGTUMBLEWEED_ROLL3
+	{SPR_BTBL, 3,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL5, 0}, // S_BIGTUMBLEWEED_ROLL4
+	{SPR_BTBL, 4,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL6, 0}, // S_BIGTUMBLEWEED_ROLL5
+	{SPR_BTBL, 5,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL7, 0}, // S_BIGTUMBLEWEED_ROLL6
+	{SPR_BTBL, 6,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL8, 0}, // S_BIGTUMBLEWEED_ROLL7
+	{SPR_BTBL, 7,  5, NULL, 0, 0, S_BIGTUMBLEWEED_ROLL1, 0}, // S_BIGTUMBLEWEED_ROLL8
 
 	// Little Tumbleweed
-	{SPR_STBL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LITTLETUMBLEWEED
-	{SPR_STBL, 0, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL2, 0}, // S_LITTLETUMBLEWEED_ROLL1
-	{SPR_STBL, 1, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL3, 0}, // S_LITTLETUMBLEWEED_ROLL2
-	{SPR_STBL, 2, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL4, 0}, // S_LITTLETUMBLEWEED_ROLL3
-	{SPR_STBL, 3, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL5, 0}, // S_LITTLETUMBLEWEED_ROLL4
-	{SPR_STBL, 4, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL6, 0}, // S_LITTLETUMBLEWEED_ROLL5
-	{SPR_STBL, 5, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL7, 0}, // S_LITTLETUMBLEWEED_ROLL6
-	{SPR_STBL, 6, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL8, 0}, // S_LITTLETUMBLEWEED_ROLL7
-	{SPR_STBL, 7, 5, {NULL}, 0, 0, S_LITTLETUMBLEWEED_ROLL1, 0}, // S_LITTLETUMBLEWEED_ROLL8
+	{SPR_STBL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_LITTLETUMBLEWEED
+	{SPR_STBL, 0, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL2, 0}, // S_LITTLETUMBLEWEED_ROLL1
+	{SPR_STBL, 1, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL3, 0}, // S_LITTLETUMBLEWEED_ROLL2
+	{SPR_STBL, 2, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL4, 0}, // S_LITTLETUMBLEWEED_ROLL3
+	{SPR_STBL, 3, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL5, 0}, // S_LITTLETUMBLEWEED_ROLL4
+	{SPR_STBL, 4, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL6, 0}, // S_LITTLETUMBLEWEED_ROLL5
+	{SPR_STBL, 5, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL7, 0}, // S_LITTLETUMBLEWEED_ROLL6
+	{SPR_STBL, 6, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL8, 0}, // S_LITTLETUMBLEWEED_ROLL7
+	{SPR_STBL, 7, 5, NULL, 0, 0, S_LITTLETUMBLEWEED_ROLL1, 0}, // S_LITTLETUMBLEWEED_ROLL8
 
 	// Cacti
-	{SPR_CACT, 0, -1, {A_ConnectToGround}, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI1
-	{SPR_CACT, 1, -1, {A_ConnectToGround}, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI2
-	{SPR_CACT, 2, -1, {A_ConnectToGround}, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI3
-	{SPR_CACT, 3, -1, {A_ConnectToGround}, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI4
-	{SPR_CACT, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTI5
-	{SPR_CACT, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTI6
-	{SPR_CACT, 6, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTI7
-	{SPR_CACT, 7, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTI8
-	{SPR_CACT, 8, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTI9
-	{SPR_CACT, 9, -1, {A_ConnectToGround}, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI10
-	{SPR_CACT, 10, -1, {A_ConnectToGround}, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI11
-	{SPR_CACT, 11, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTITINYSEG
-	{SPR_CACT, 12, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CACTISMALLSEG
+	{SPR_CACT, 0, -1, A_ConnectToGround, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI1
+	{SPR_CACT, 1, -1, A_ConnectToGround, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI2
+	{SPR_CACT, 2, -1, A_ConnectToGround, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI3
+	{SPR_CACT, 3, -1, A_ConnectToGround, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI4
+	{SPR_CACT, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTI5
+	{SPR_CACT, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTI6
+	{SPR_CACT, 6, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTI7
+	{SPR_CACT, 7, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTI8
+	{SPR_CACT, 8, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTI9
+	{SPR_CACT, 9, -1, A_ConnectToGround, MT_CACTITINYSEG, 0, S_NULL, 0}, // S_CACTI10
+	{SPR_CACT, 10, -1, A_ConnectToGround, MT_CACTISMALLSEG, 0, S_NULL, 0}, // S_CACTI11
+	{SPR_CACT, 11, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTITINYSEG
+	{SPR_CACT, 12, -1, NULL, 0, 0, S_NULL, 0}, // S_CACTISMALLSEG
 
 	// Warning Signs
-	{SPR_WWSG, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_ARIDSIGN_CAUTION
-	{SPR_WWS2, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_ARIDSIGN_CACTI
-	{SPR_WWS3, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_ARIDSIGN_SHARPTURN
+	{SPR_WWSG, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_ARIDSIGN_CAUTION
+	{SPR_WWS2, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_ARIDSIGN_CACTI
+	{SPR_WWS3, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_ARIDSIGN_SHARPTURN
 
 	// Oil lamp
-	{SPR_OILL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_OILLAMP
-	{SPR_OILF, FF_TRANS90|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_OILLAMPFLARE
+	{SPR_OILL, FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_OILLAMP
+	{SPR_OILF, FF_TRANS90|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_OILLAMPFLARE
 
 	// TNT barrel
-	{SPR_BARR, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_TNTBARREL_STND1
-	{SPR_BARX, 0, 0, {A_RollAngle}, 0, 1, S_TNTBARREL_EXPL2, 0}, // S_TNTBARREL_EXPL1
-	{SPR_BARX, 0|FF_FULLBRIGHT, 3, {A_SetObjectFlags}, MF_NOCLIP|MF_NOGRAVITY|MF_NOBLOCKMAP, 0, S_TNTBARREL_EXPL3, 0}, // S_TNTBARREL_EXPL2
-	{SPR_BARX, 1|FF_FULLBRIGHT, 2, {A_TNTExplode}, MT_TNTDUST, 0, S_TNTBARREL_EXPL4, 0}, // S_TNTBARREL_EXPL3
-	{SPR_BARX, 1|FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_TNTBARREL_EXPL5, 0}, // S_TNTBARREL_EXPL4
-	{SPR_BARX, 2|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_TNTBARREL_EXPL6, 0}, // S_TNTBARREL_EXPL5
-	{SPR_BARX, 3|FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_TNTBARREL_EXPL7, 0}, // S_TNTBARREL_EXPL6
-	{SPR_NULL, 0, 35, {NULL}, 0, 0, S_NULL, 0}, // S_TNTBARREL_EXPL7
+	{SPR_BARR, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_TNTBARREL_STND1
+	{SPR_BARX, 0, 0, A_RollAngle, 0, 1, S_TNTBARREL_EXPL2, 0}, // S_TNTBARREL_EXPL1
+	{SPR_BARX, 0|FF_FULLBRIGHT, 3, A_SetObjectFlags, MF_NOCLIP|MF_NOGRAVITY|MF_NOBLOCKMAP, 0, S_TNTBARREL_EXPL3, 0}, // S_TNTBARREL_EXPL2
+	{SPR_BARX, 1|FF_FULLBRIGHT, 2, A_TNTExplode, MT_TNTDUST, 0, S_TNTBARREL_EXPL4, 0}, // S_TNTBARREL_EXPL3
+	{SPR_BARX, 1|FF_FULLBRIGHT, 1, NULL, 0, 0, S_TNTBARREL_EXPL5, 0}, // S_TNTBARREL_EXPL4
+	{SPR_BARX, 2|FF_FULLBRIGHT, 3, NULL, 0, 0, S_TNTBARREL_EXPL6, 0}, // S_TNTBARREL_EXPL5
+	{SPR_BARX, 3|FF_FULLBRIGHT, 3, NULL, 0, 0, S_TNTBARREL_EXPL7, 0}, // S_TNTBARREL_EXPL6
+	{SPR_NULL, 0, 35, NULL, 0, 0, S_NULL, 0}, // S_TNTBARREL_EXPL7
 #ifndef ROTSPRITE
-	{SPR_BARR, 1|FF_ANIMATE, -1, {NULL}, 7, 2, S_NULL, 0}, // S_TNTBARREL_FLYING
+	{SPR_BARR, 1|FF_ANIMATE, -1, NULL, 7, 2, S_NULL, 0}, // S_TNTBARREL_FLYING
 #else
-	{SPR_BARR, 1, 1, {A_RollAngle}, 14, 0, S_TNTBARREL_FLYING, 0}, // S_TNTBARREL_FLYING
+	{SPR_BARR, 1, 1, A_RollAngle, 14, 0, S_TNTBARREL_FLYING, 0}, // S_TNTBARREL_FLYING
 #endif
 
 	// TNT proximity shell
-	{SPR_REMT, 0, 10, {A_Look}, 33554433, 0, S_PROXIMITY_TNT, 0}, // S_PROXIMITY_TNT
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER2, 0}, // S_PROXIMITY_TNT_TRIGGER1
-	{SPR_REMT, 0, 16, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER3, 0}, // S_PROXIMITY_TNT_TRIGGER2
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER4, 0}, // S_PROXIMITY_TNT_TRIGGER3
-	{SPR_REMT, 0, 16, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER5, 0}, // S_PROXIMITY_TNT_TRIGGER4
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER6, 0}, // S_PROXIMITY_TNT_TRIGGER5
-	{SPR_REMT, 0, 4, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER7, 0}, // S_PROXIMITY_TNT_TRIGGER6
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER8, 0}, // S_PROXIMITY_TNT_TRIGGER7
-	{SPR_REMT, 0, 4, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER9, 0}, // S_PROXIMITY_TNT_TRIGGER8
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER10, 0}, // S_PROXIMITY_TNT_TRIGGER9
-	{SPR_REMT, 0, 4, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER11, 0}, // S_PROXIMITY_TNT_TRIGGER10
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER12, 0}, // S_PROXIMITY_TNT_TRIGGER11
-	{SPR_REMT, 0, 4, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER13, 0}, // S_PROXIMITY_TNT_TRIGGER12
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER14, 0}, // S_PROXIMITY_TNT_TRIGGER13
-	{SPR_REMT, 0, 2, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER15, 0}, // S_PROXIMITY_TNT_TRIGGER14
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER16, 0}, // S_PROXIMITY_TNT_TRIGGER15
-	{SPR_REMT, 0, 2, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER17, 0}, // S_PROXIMITY_TNT_TRIGGER16
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER18, 0}, // S_PROXIMITY_TNT_TRIGGER17
-	{SPR_REMT, 0, 2, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER19, 0}, // S_PROXIMITY_TNT_TRIGGER18
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER20, 0}, // S_PROXIMITY_TNT_TRIGGER19
-	{SPR_REMT, 0, 2, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER21, 0}, // S_PROXIMITY_TNT_TRIGGER20
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_PROXIMITY_TNT_TRIGGER22, 0}, // S_PROXIMITY_TNT_TRIGGER21
-	{SPR_REMT, 0, 2, {NULL}, 0, 0, S_PROXIMITY_TNT_TRIGGER23, 0}, // S_PROXIMITY_TNT_TRIGGER22
-	{SPR_REMT, 1|FF_FULLBRIGHT, 1, {A_PlayActiveSound}, 0, 0, S_TNTBARREL_EXPL1, 0}, // S_PROXIMITY_TNT_TRIGGER23
+	{SPR_REMT, 0, 10, A_Look, 33554433, 0, S_PROXIMITY_TNT, 0}, // S_PROXIMITY_TNT
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER2, 0}, // S_PROXIMITY_TNT_TRIGGER1
+	{SPR_REMT, 0, 16, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER3, 0}, // S_PROXIMITY_TNT_TRIGGER2
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER4, 0}, // S_PROXIMITY_TNT_TRIGGER3
+	{SPR_REMT, 0, 16, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER5, 0}, // S_PROXIMITY_TNT_TRIGGER4
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER6, 0}, // S_PROXIMITY_TNT_TRIGGER5
+	{SPR_REMT, 0, 4, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER7, 0}, // S_PROXIMITY_TNT_TRIGGER6
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER8, 0}, // S_PROXIMITY_TNT_TRIGGER7
+	{SPR_REMT, 0, 4, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER9, 0}, // S_PROXIMITY_TNT_TRIGGER8
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER10, 0}, // S_PROXIMITY_TNT_TRIGGER9
+	{SPR_REMT, 0, 4, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER11, 0}, // S_PROXIMITY_TNT_TRIGGER10
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER12, 0}, // S_PROXIMITY_TNT_TRIGGER11
+	{SPR_REMT, 0, 4, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER13, 0}, // S_PROXIMITY_TNT_TRIGGER12
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER14, 0}, // S_PROXIMITY_TNT_TRIGGER13
+	{SPR_REMT, 0, 2, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER15, 0}, // S_PROXIMITY_TNT_TRIGGER14
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER16, 0}, // S_PROXIMITY_TNT_TRIGGER15
+	{SPR_REMT, 0, 2, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER17, 0}, // S_PROXIMITY_TNT_TRIGGER16
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER18, 0}, // S_PROXIMITY_TNT_TRIGGER17
+	{SPR_REMT, 0, 2, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER19, 0}, // S_PROXIMITY_TNT_TRIGGER18
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER20, 0}, // S_PROXIMITY_TNT_TRIGGER19
+	{SPR_REMT, 0, 2, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER21, 0}, // S_PROXIMITY_TNT_TRIGGER20
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_PROXIMITY_TNT_TRIGGER22, 0}, // S_PROXIMITY_TNT_TRIGGER21
+	{SPR_REMT, 0, 2, NULL, 0, 0, S_PROXIMITY_TNT_TRIGGER23, 0}, // S_PROXIMITY_TNT_TRIGGER22
+	{SPR_REMT, 1|FF_FULLBRIGHT, 1, A_PlayActiveSound, 0, 0, S_TNTBARREL_EXPL1, 0}, // S_PROXIMITY_TNT_TRIGGER23
 
 	// Dust devil
-	{SPR_NULL, 0, 1, {A_DustDevilThink}, 0, 0, S_DUSTDEVIL, 0}, //S_DUSTDEVIL
-	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 2 * TICRATE, {NULL}, 0, 0, S_DUSTLAYER2, 0}, // S_DUSTLAYER1
-	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 5, {NULL}, 0, 0, S_DUSTLAYER3, 0}, // S_DUSTLAYER2
-	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER4, 0}, // S_DUSTLAYER3
-	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER5, 0}, // S_DUSTLAYER4
-	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS90, 5, {NULL}, 0, 0, S_NULL, 0}, // S_DUSTLAYER5
-	{SPR_ADST, 0|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL, 0}, // S_ARIDDUST1
-	{SPR_ADST, 3|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL, 0}, // S_ARIDDUST2
-	{SPR_ADST, 6|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL, 0}, // S_ARIDDUST3
+	{SPR_NULL, 0, 1, A_DustDevilThink, 0, 0, S_DUSTDEVIL, 0}, //S_DUSTDEVIL
+	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 2 * TICRATE, NULL, 0, 0, S_DUSTLAYER2, 0}, // S_DUSTLAYER1
+	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 5, NULL, 0, 0, S_DUSTLAYER3, 0}, // S_DUSTLAYER2
+	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, NULL, 0, 0, S_DUSTLAYER4, 0}, // S_DUSTLAYER3
+	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, NULL, 0, 0, S_DUSTLAYER5, 0}, // S_DUSTLAYER4
+	{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS90, 5, NULL, 0, 0, S_NULL, 0}, // S_DUSTLAYER5
+	{SPR_ADST, 0|FF_ANIMATE, 24, NULL, 3, 8, S_NULL, 0}, // S_ARIDDUST1
+	{SPR_ADST, 3|FF_ANIMATE, 24, NULL, 3, 8, S_NULL, 0}, // S_ARIDDUST2
+	{SPR_ADST, 6|FF_ANIMATE, 24, NULL, 3, 8, S_NULL, 0}, // S_ARIDDUST3
 
 	// Minecart
-	{SPR_NULL, 0,                            1, {NULL},                 0, 0, S_MINECART_IDLE, 0},   // S_MINECART_IDLE
-	{SPR_NULL, 0,                            0, {A_KillSegments},       0, 0, S_TNTBARREL_EXPL4, 0}, // S_MINECART_DTH1
-	{SPR_MCRT, 8|FF_PAPERSPRITE,            -1, {NULL},                 0, 0, S_NULL, 0},            // S_MINECARTEND
-	{SPR_MCRT, 0|FF_PAPERSPRITE,            -1, {NULL},                 0, 0, S_NULL, 0},            // S_MINECARTSEG_FRONT
-	{SPR_MCRT, 1|FF_PAPERSPRITE,            -1, {NULL},                 0, 0, S_NULL, 0},            // S_MINECARTSEG_BACK
-	{SPR_MCRT, 2|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL},                 2, 3, S_NULL, 0},            // S_MINECARTSEG_LEFT
-	{SPR_MCRT, 5|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL},                 2, 3, S_NULL, 0},            // S_MINECARTSEG_RIGHT
-	{SPR_LCKN, 2|FF_FULLBRIGHT,              2, {NULL},                 0, 0, S_NULL, 0},            // S_MINECARTSIDEMARK1
-	{SPR_LCKN, 0|FF_FULLBRIGHT,              2, {NULL},                 0, 0, S_NULL, 0},            // S_MINECARTSIDEMARK2
-	{SPR_MCSP, FF_FULLBRIGHT,                1, {A_MinecartSparkThink}, 0, 0, S_MINECARTSPARK, 0},   // S_MINECARTSPARK
+	{SPR_NULL, 0,                            1, NULL,                 0, 0, S_MINECART_IDLE, 0},   // S_MINECART_IDLE
+	{SPR_NULL, 0,                            0, A_KillSegments,       0, 0, S_TNTBARREL_EXPL4, 0}, // S_MINECART_DTH1
+	{SPR_MCRT, 8|FF_PAPERSPRITE,            -1, NULL,                 0, 0, S_NULL, 0},            // S_MINECARTEND
+	{SPR_MCRT, 0|FF_PAPERSPRITE,            -1, NULL,                 0, 0, S_NULL, 0},            // S_MINECARTSEG_FRONT
+	{SPR_MCRT, 1|FF_PAPERSPRITE,            -1, NULL,                 0, 0, S_NULL, 0},            // S_MINECARTSEG_BACK
+	{SPR_MCRT, 2|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL,                 2, 3, S_NULL, 0},            // S_MINECARTSEG_LEFT
+	{SPR_MCRT, 5|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL,                 2, 3, S_NULL, 0},            // S_MINECARTSEG_RIGHT
+	{SPR_LCKN, 2|FF_FULLBRIGHT,              2, NULL,                 0, 0, S_NULL, 0},            // S_MINECARTSIDEMARK1
+	{SPR_LCKN, 0|FF_FULLBRIGHT,              2, NULL,                 0, 0, S_NULL, 0},            // S_MINECARTSIDEMARK2
+	{SPR_MCSP, FF_FULLBRIGHT,                1, A_MinecartSparkThink, 0, 0, S_MINECARTSPARK, 0},   // S_MINECARTSPARK
 
 	// Saloon door
-	{SPR_SALD, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SALOONDOOR
-	{SPR_NULL, 0, -1, {A_SaloonDoorSpawn}, MT_SALOONDOOR, 48, S_NULL, 0}, // S_SALOONDOORCENTER
+	{SPR_SALD, 0|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_SALOONDOOR
+	{SPR_NULL, 0, -1, A_SaloonDoorSpawn, MT_SALOONDOOR, 48, S_NULL, 0}, // S_SALOONDOORCENTER
 
 	// Train cameo
-	{SPR_NULL, 0, -1, {NULL}, 0, 0, S_TRAINCAMEOSPAWNER_2, 0}, // S_TRAINCAMEOSPAWNER_1
-	{SPR_NULL, 0, 14, {A_TrainCameo}, 20, 18, S_TRAINCAMEOSPAWNER_3, 0}, // S_TRAINCAMEOSPAWNER_2
-	{SPR_NULL, 0, 1, {A_Repeat}, 1, 0, S_TRAINCAMEOSPAWNER_4, 0}, // S_TRAINCAMEOSPAWNER_3
-	{SPR_NULL, 0, 18, {A_TrainCameo2}, 20, 44, S_TRAINCAMEOSPAWNER_5, 0}, // S_TRAINCAMEOSPAWNER_4
-	{SPR_NULL, 0, 1, {A_Repeat}, 5, S_TRAINCAMEOSPAWNER_4, S_NULL, 0}, // S_TRAINCAMEOSPAWNER_5
-	{SPR_NULL, 0, 2, {A_SmokeTrailer}, MT_SMOKE, 0, S_TRAINPUFFMAKER, 0}, // S_TRAINPUFFMAKER
+	{SPR_NULL, 0, -1, NULL, 0, 0, S_TRAINCAMEOSPAWNER_2, 0}, // S_TRAINCAMEOSPAWNER_1
+	{SPR_NULL, 0, 14, A_TrainCameo, 20, 18, S_TRAINCAMEOSPAWNER_3, 0}, // S_TRAINCAMEOSPAWNER_2
+	{SPR_NULL, 0, 1, A_Repeat, 1, 0, S_TRAINCAMEOSPAWNER_4, 0}, // S_TRAINCAMEOSPAWNER_3
+	{SPR_NULL, 0, 18, A_TrainCameo2, 20, 44, S_TRAINCAMEOSPAWNER_5, 0}, // S_TRAINCAMEOSPAWNER_4
+	{SPR_NULL, 0, 1, A_Repeat, 5, S_TRAINCAMEOSPAWNER_4, S_NULL, 0}, // S_TRAINCAMEOSPAWNER_5
+	{SPR_NULL, 0, 2, A_SmokeTrailer, MT_SMOKE, 0, S_TRAINPUFFMAKER, 0}, // S_TRAINPUFFMAKER
 
-	{SPR_ADST, FF_TRANS50, -1, {NULL}, 0, 0, S_NULL, 0}, // S_TRAINDUST
-	{SPR_STEA, FF_TRANS50, -1, {NULL}, 0, 0, S_NULL, 0}, // S_TRAINSTEAM
+	{SPR_ADST, FF_TRANS50, -1, NULL, 0, 0, S_NULL, 0}, // S_TRAINDUST
+	{SPR_STEA, FF_TRANS50, -1, NULL, 0, 0, S_NULL, 0}, // S_TRAINSTEAM
 
 	// Flame jet
-	{SPR_NULL, 0, 2*TICRATE, {NULL},             0, 0, S_FLAMEJETSTART, 0}, // S_FLAMEJETSTND
-	{SPR_NULL, 0, 3*TICRATE, {A_ToggleFlameJet}, 0, 0,  S_FLAMEJETSTOP, 0}, // S_FLAMEJETSTART
-	{SPR_NULL, 0,         1, {A_ToggleFlameJet}, 0, 0,  S_FLAMEJETSTND, 0}, // S_FLAMEJETSTOP
-	{SPR_FLME, FF_FULLBRIGHT  ,  4, {NULL}, 0, 0, S_FLAMEJETFLAME2, 0}, // S_FLAMEJETFLAME1
-	{SPR_FLME, FF_FULLBRIGHT|1,  5, {NULL}, 0, 0, S_FLAMEJETFLAME3, 0}, // S_FLAMEJETFLAME2
-	{SPR_FLME, FF_FULLBRIGHT|2, 11, {NULL}, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME3
-	{SPR_FLME, FF_FULLBRIGHT|3,  4, {NULL}, 0, 0, S_FLAMEJETFLAME5, 0}, // S_FLAMEJETFLAME4
-	{SPR_FLME, FF_FULLBRIGHT|4,  5, {NULL}, 0, 0, S_FLAMEJETFLAME6, 0}, // S_FLAMEJETFLAME5
-	{SPR_FLME, FF_FULLBRIGHT|5, 11, {NULL}, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME6
-	{SPR_FLME, FF_FULLBRIGHT|6,  4, {NULL}, 0, 0, S_FLAMEJETFLAME8, 0}, // S_FLAMEJETFLAME7
-	{SPR_FLME, FF_FULLBRIGHT|7,  5, {NULL}, 0, 0, S_FLAMEJETFLAME9, 0}, // S_FLAMEJETFLAME8
-	{SPR_FLME, FF_FULLBRIGHT|8, 11, {NULL}, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME9
+	{SPR_NULL, 0, 2*TICRATE, NULL,             0, 0, S_FLAMEJETSTART, 0}, // S_FLAMEJETSTND
+	{SPR_NULL, 0, 3*TICRATE, A_ToggleFlameJet, 0, 0,  S_FLAMEJETSTOP, 0}, // S_FLAMEJETSTART
+	{SPR_NULL, 0,         1, A_ToggleFlameJet, 0, 0,  S_FLAMEJETSTND, 0}, // S_FLAMEJETSTOP
+	{SPR_FLME, FF_FULLBRIGHT  ,  4, NULL, 0, 0, S_FLAMEJETFLAME2, 0}, // S_FLAMEJETFLAME1
+	{SPR_FLME, FF_FULLBRIGHT|1,  5, NULL, 0, 0, S_FLAMEJETFLAME3, 0}, // S_FLAMEJETFLAME2
+	{SPR_FLME, FF_FULLBRIGHT|2, 11, NULL, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME3
+	{SPR_FLME, FF_FULLBRIGHT|3,  4, NULL, 0, 0, S_FLAMEJETFLAME5, 0}, // S_FLAMEJETFLAME4
+	{SPR_FLME, FF_FULLBRIGHT|4,  5, NULL, 0, 0, S_FLAMEJETFLAME6, 0}, // S_FLAMEJETFLAME5
+	{SPR_FLME, FF_FULLBRIGHT|5, 11, NULL, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME6
+	{SPR_FLME, FF_FULLBRIGHT|6,  4, NULL, 0, 0, S_FLAMEJETFLAME8, 0}, // S_FLAMEJETFLAME7
+	{SPR_FLME, FF_FULLBRIGHT|7,  5, NULL, 0, 0, S_FLAMEJETFLAME9, 0}, // S_FLAMEJETFLAME8
+	{SPR_FLME, FF_FULLBRIGHT|8, 11, NULL, 0, 0,           S_NULL, 0}, // S_FLAMEJETFLAME9
 
 	// Spinning flame jets
 	// A: Counter-clockwise
-	{SPR_NULL, 0, 1,            {A_TrapShot}, MT_FLAMEJETFLAMEB, -(16<<16)|(1<<15)|64, S_FJSPINAXISA2, 0}, // S_FJSPINAXISA1
-	{SPR_NULL, 0, 2, {A_ChangeAngleRelative},                 6,         6, S_FJSPINAXISA1, 0}, // S_FJSPINAXISA2
+	{SPR_NULL, 0, 1,            A_TrapShot, MT_FLAMEJETFLAMEB, -(16<<16)|(1<<15)|64, S_FJSPINAXISA2, 0}, // S_FJSPINAXISA1
+	{SPR_NULL, 0, 2, A_ChangeAngleRelative,                 6,         6, S_FJSPINAXISA1, 0}, // S_FJSPINAXISA2
 
 	// B: Clockwise
-	{SPR_NULL, 0, 1,            {A_TrapShot}, MT_FLAMEJETFLAMEB, -(16<<16)|(1<<15)|64, S_FJSPINAXISB2, 0}, // S_FJSPINAXISB1
-	{SPR_NULL, 0, 2, {A_ChangeAngleRelative},                -6,        -6, S_FJSPINAXISB1, 0}, // S_FJSPINAXISB2
+	{SPR_NULL, 0, 1,            A_TrapShot, MT_FLAMEJETFLAMEB, -(16<<16)|(1<<15)|64, S_FJSPINAXISB2, 0}, // S_FJSPINAXISB1
+	{SPR_NULL, 0, 2, A_ChangeAngleRelative,                -6,        -6, S_FJSPINAXISB1, 0}, // S_FJSPINAXISB2
 
 	// Blade's flame
-	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40, 1, {A_MoveRelative}, 0, 5, S_FLAMEJETFLAMEB2, 0}, // S_FLAMEJETFLAMEB1
-	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40, 1, {A_MoveRelative}, 0, 7, S_FLAMEJETFLAMEB3, 0}, // S_FLAMEJETFLAMEB2
-	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40|FF_ANIMATE, (12*7), {NULL}, 7, 12, S_NULL, 0},  // S_FLAMEJETFLAMEB3
+	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40, 1, A_MoveRelative, 0, 5, S_FLAMEJETFLAMEB2, 0}, // S_FLAMEJETFLAMEB1
+	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40, 1, A_MoveRelative, 0, 7, S_FLAMEJETFLAMEB3, 0}, // S_FLAMEJETFLAMEB2
+	{SPR_DFLM, FF_FULLBRIGHT|FF_TRANS40|FF_ANIMATE, (12*7), NULL, 7, 12, S_NULL, 0},  // S_FLAMEJETFLAMEB3
 
 	// Lavafall
-	{SPR_LFAL, 5, 1, {NULL}, 0, 0, S_LAVAFALL_DORMANT, 0}, // S_LAVAFALL_DORMANT
-	{SPR_LFAL, 6|FF_ANIMATE, 4, {A_LavafallRocks}, 1, 2, S_LAVAFALL_TELL, 0}, // S_LAVAFALL_TELL
-	{SPR_LFAL, 9|FF_FULLBRIGHT|FF_ANIMATE, 2, {A_LavafallLava}, 1, 1, S_LAVAFALL_SHOOT, 0}, // S_LAVAFALL_SHOOT
-	{SPR_LFAL, FF_FULLBRIGHT, 1, {A_FallingLavaCheck}, 0, 0, S_LAVAFALL_LAVA2, 0}, // S_LAVAFALL_LAVA1
-	{SPR_LFAL, FF_FULLBRIGHT, 1, {A_FallingLavaCheck}, 0, 0, S_LAVAFALL_LAVA1, 0}, // S_LAVAFALL_LAVA2
-	{SPR_LFAL, 2|FF_FULLBRIGHT|FF_ANIMATE, 9, {NULL}, 2, 3, S_NULL, 0}, // S_LAVAFALL_LAVA3
-	{SPR_LFAL, 11|FF_ANIMATE|FF_RANDOMANIM, 12, {NULL}, 3, 3, S_LAVAFALLROCK, 0}, // S_LAVAFALLROCK
+	{SPR_LFAL, 5, 1, NULL, 0, 0, S_LAVAFALL_DORMANT, 0}, // S_LAVAFALL_DORMANT
+	{SPR_LFAL, 6|FF_ANIMATE, 4, A_LavafallRocks, 1, 2, S_LAVAFALL_TELL, 0}, // S_LAVAFALL_TELL
+	{SPR_LFAL, 9|FF_FULLBRIGHT|FF_ANIMATE, 2, A_LavafallLava, 1, 1, S_LAVAFALL_SHOOT, 0}, // S_LAVAFALL_SHOOT
+	{SPR_LFAL, FF_FULLBRIGHT, 1, A_FallingLavaCheck, 0, 0, S_LAVAFALL_LAVA2, 0}, // S_LAVAFALL_LAVA1
+	{SPR_LFAL, FF_FULLBRIGHT, 1, A_FallingLavaCheck, 0, 0, S_LAVAFALL_LAVA1, 0}, // S_LAVAFALL_LAVA2
+	{SPR_LFAL, 2|FF_FULLBRIGHT|FF_ANIMATE, 9, NULL, 2, 3, S_NULL, 0}, // S_LAVAFALL_LAVA3
+	{SPR_LFAL, 11|FF_ANIMATE|FF_RANDOMANIM, 12, NULL, 3, 3, S_LAVAFALLROCK, 0}, // S_LAVAFALLROCK
 
 	// Rollout Rock
-	{SPR_NULL, 0, 1, {A_RolloutSpawn}, 256*FRACUNIT, MT_ROLLOUTROCK, S_ROLLOUTSPAWN, 0}, // S_ROLLOUTSPAWN
-	{SPR_PUMI, 0, 1, {A_RolloutRock},    63*FRACUNIT/64,  7*FRACUNIT/10,  S_ROLLOUTROCK, 0}, // S_ROLLOUTROCK
+	{SPR_NULL, 0, 1, A_RolloutSpawn, 256*FRACUNIT, MT_ROLLOUTROCK, S_ROLLOUTSPAWN, 0}, // S_ROLLOUTSPAWN
+	{SPR_PUMI, 0, 1, A_RolloutRock,    63*FRACUNIT/64,  7*FRACUNIT/10,  S_ROLLOUTROCK, 0}, // S_ROLLOUTROCK
 
 	// RVZ scenery
-	{SPR_JPLA, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIGFERNLEAF
-	{SPR_JPLA, 1, 1, {NULL}, 0, 0, S_BIGFERN2, 0}, // S_BIGFERN1
-	{SPR_JPLA, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIGFERN2
-	{SPR_JPLA, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_JUNGLEPALM
-	{SPR_TFLO, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_TORCHFLOWER, 0}, // S_TORCHFLOWER
-	{SPR_WVIN, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_WALLVINE_LONG
-	{SPR_WVIN, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_WALLVINE_SHORT
+	{SPR_JPLA, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_BIGFERNLEAF
+	{SPR_JPLA, 1, 1, NULL, 0, 0, S_BIGFERN2, 0}, // S_BIGFERN1
+	{SPR_JPLA, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BIGFERN2
+	{SPR_JPLA, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_JUNGLEPALM
+	{SPR_TFLO, FF_FULLBRIGHT, -1, NULL, 0, 0, S_TORCHFLOWER, 0}, // S_TORCHFLOWER
+	{SPR_WVIN, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_WALLVINE_LONG
+	{SPR_WVIN, 1|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_WALLVINE_SHORT
 
 	// Glaregoyles
-	{SPR_BGAR,            0, 22, {NULL},       0, 0, S_GLAREGOYLE_CHARGE, 0},  // S_GLAREGOYLE
-	{SPR_BGAR,            2,  6, {NULL},       0, 0, S_GLAREGOYLE_BLINK, 0},  // S_GLAREGOYLE_CHARGE
-	{SPR_BGAR, FF_ANIMATE|1, 18, {NULL},       1, 3, S_GLAREGOYLE_HOLD, 0}, // S_GLAREGOYLE_BLINK
-	{SPR_BGAR,            1,  9, {NULL},       0, 0, S_GLAREGOYLE_FIRE, 0},  // S_GLAREGOYLE_HOLD
-	{SPR_BGAR,            1,  1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLE_LOOP, 0},  // S_GLAREGOYLE_FIRE
-	{SPR_BGAR,            1,  0, {A_Repeat},   3, S_GLAREGOYLE_FIRE, S_GLAREGOYLE_COOLDOWN, 0}, // S_GLAREGOYLE_LOOP
-	{SPR_BGAR, FF_ANIMATE|1, 15, {NULL},       1, 9, S_GLAREGOYLE, 0}, // S_GLAREGOYLE_COOLDOWN
-
-	{SPR_BGAR,            0, 22, {NULL},       0, 0, S_GLAREGOYLEUP_CHARGE, 0},  // S_GLAREGOYLEUP
-	{SPR_BGAR,            2,  6, {NULL},       0, 0, S_GLAREGOYLEUP_BLINK, 0},  // S_GLAREGOYLEUP_CHARGE
-	{SPR_BGAR, FF_ANIMATE|1, 18, {NULL},       1, 3, S_GLAREGOYLEUP_HOLD, 0}, // S_GLAREGOYLEUP_BLINK
-	{SPR_BGAR,            1,  9, {NULL},       0, 0, S_GLAREGOYLEUP_FIRE, 0},  // S_GLAREGOYLEUP_HOLD
-	{SPR_BGAR,            1,  1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_GLAREGOYLEUP_LOOP, 0},  // S_GLAREGOYLEUP_FIRE
-	{SPR_BGAR,            1,  0, {A_Repeat},   3, S_GLAREGOYLEUP_FIRE, S_GLAREGOYLEUP_COOLDOWN, 0}, // S_GLAREGOYLEUP_LOOP
-	{SPR_BGAR, FF_ANIMATE|1, 15, {NULL},       1, 9, S_GLAREGOYLEUP, 0}, // S_GLAREGOYLEUP_COOLDOWN
-
-	{SPR_BGAR,            0, 22, {NULL},       0, 0, S_GLAREGOYLEDOWN_CHARGE, 0},  // S_GLAREGOYLEDOWN
-	{SPR_BGAR,            2,  6, {NULL},       0, 0, S_GLAREGOYLEDOWN_BLINK, 0},  // S_GLAREGOYLEDOWN_CHARGE
-	{SPR_BGAR, FF_ANIMATE|1, 18, {NULL},       1, 3, S_GLAREGOYLEDOWN_HOLD, 0}, // S_GLAREGOYLEDOWN_BLINK
-	{SPR_BGAR,            1,  9, {NULL},       0, 0, S_GLAREGOYLEDOWN_FIRE, 0},  // S_GLAREGOYLEDOWN_HOLD
-	{SPR_BGAR,            1,  1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_GLAREGOYLEDOWN_LOOP, 0},  // S_GLAREGOYLEDOWN_FIRE
-	{SPR_BGAR,            1,  0, {A_Repeat},   3, S_GLAREGOYLEDOWN_FIRE, S_GLAREGOYLEDOWN_COOLDOWN, 0}, // S_GLAREGOYLEDOWN_LOOP
-	{SPR_BGAR, FF_ANIMATE|1, 15, {NULL},       1, 9, S_GLAREGOYLEDOWN, 0}, // S_GLAREGOYLEDOWN_COOLDOWN
-
-	{SPR_BGAR,            0, 90, {NULL},       0, 0, S_GLAREGOYLELONG_CHARGE, 0},  // S_GLAREGOYLELONG
-	{SPR_BGAR,            2,  6, {NULL},       0, 0, S_GLAREGOYLELONG_BLINK, 0},  // S_GLAREGOYLELONG_CHARGE
-	{SPR_BGAR, FF_ANIMATE|1, 18, {NULL},       1, 3, S_GLAREGOYLELONG_HOLD, 0}, // S_GLAREGOYLELONG_BLINK
-	{SPR_BGAR,            1,  9, {NULL},       0, 0, S_GLAREGOYLELONG_FIRE, 0},  // S_GLAREGOYLELONG_HOLD
-	{SPR_BGAR,            1,  1, {A_TrapShot}, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLELONG_LOOP, 0},  // S_GLAREGOYLELONG_FIRE
-	{SPR_BGAR,            1,  0, {A_Repeat},   5, S_GLAREGOYLELONG_FIRE, S_GLAREGOYLELONG_COOLDOWN, 0}, // S_GLAREGOYLELONG_LOOP
-	{SPR_BGAR, FF_ANIMATE|1, 15, {NULL},       1, 9, S_GLAREGOYLELONG, 0}, // S_GLAREGOYLELONG_COOLDOWN
+	{SPR_BGAR,            0, 22, NULL,       0, 0, S_GLAREGOYLE_CHARGE, 0},  // S_GLAREGOYLE
+	{SPR_BGAR,            2,  6, NULL,       0, 0, S_GLAREGOYLE_BLINK, 0},  // S_GLAREGOYLE_CHARGE
+	{SPR_BGAR, FF_ANIMATE|1, 18, NULL,       1, 3, S_GLAREGOYLE_HOLD, 0}, // S_GLAREGOYLE_BLINK
+	{SPR_BGAR,            1,  9, NULL,       0, 0, S_GLAREGOYLE_FIRE, 0},  // S_GLAREGOYLE_HOLD
+	{SPR_BGAR,            1,  1, A_TrapShot, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLE_LOOP, 0},  // S_GLAREGOYLE_FIRE
+	{SPR_BGAR,            1,  0, A_Repeat,   3, S_GLAREGOYLE_FIRE, S_GLAREGOYLE_COOLDOWN, 0}, // S_GLAREGOYLE_LOOP
+	{SPR_BGAR, FF_ANIMATE|1, 15, NULL,       1, 9, S_GLAREGOYLE, 0}, // S_GLAREGOYLE_COOLDOWN
+
+	{SPR_BGAR,            0, 22, NULL,       0, 0, S_GLAREGOYLEUP_CHARGE, 0},  // S_GLAREGOYLEUP
+	{SPR_BGAR,            2,  6, NULL,       0, 0, S_GLAREGOYLEUP_BLINK, 0},  // S_GLAREGOYLEUP_CHARGE
+	{SPR_BGAR, FF_ANIMATE|1, 18, NULL,       1, 3, S_GLAREGOYLEUP_HOLD, 0}, // S_GLAREGOYLEUP_BLINK
+	{SPR_BGAR,            1,  9, NULL,       0, 0, S_GLAREGOYLEUP_FIRE, 0},  // S_GLAREGOYLEUP_HOLD
+	{SPR_BGAR,            1,  1, A_TrapShot, (16<<16)+MT_DEMONFIRE, (30<<16)+45, S_GLAREGOYLEUP_LOOP, 0},  // S_GLAREGOYLEUP_FIRE
+	{SPR_BGAR,            1,  0, A_Repeat,   3, S_GLAREGOYLEUP_FIRE, S_GLAREGOYLEUP_COOLDOWN, 0}, // S_GLAREGOYLEUP_LOOP
+	{SPR_BGAR, FF_ANIMATE|1, 15, NULL,       1, 9, S_GLAREGOYLEUP, 0}, // S_GLAREGOYLEUP_COOLDOWN
+
+	{SPR_BGAR,            0, 22, NULL,       0, 0, S_GLAREGOYLEDOWN_CHARGE, 0},  // S_GLAREGOYLEDOWN
+	{SPR_BGAR,            2,  6, NULL,       0, 0, S_GLAREGOYLEDOWN_BLINK, 0},  // S_GLAREGOYLEDOWN_CHARGE
+	{SPR_BGAR, FF_ANIMATE|1, 18, NULL,       1, 3, S_GLAREGOYLEDOWN_HOLD, 0}, // S_GLAREGOYLEDOWN_BLINK
+	{SPR_BGAR,            1,  9, NULL,       0, 0, S_GLAREGOYLEDOWN_FIRE, 0},  // S_GLAREGOYLEDOWN_HOLD
+	{SPR_BGAR,            1,  1, A_TrapShot, (16<<16)+MT_DEMONFIRE, (30<<16)+315, S_GLAREGOYLEDOWN_LOOP, 0},  // S_GLAREGOYLEDOWN_FIRE
+	{SPR_BGAR,            1,  0, A_Repeat,   3, S_GLAREGOYLEDOWN_FIRE, S_GLAREGOYLEDOWN_COOLDOWN, 0}, // S_GLAREGOYLEDOWN_LOOP
+	{SPR_BGAR, FF_ANIMATE|1, 15, NULL,       1, 9, S_GLAREGOYLEDOWN, 0}, // S_GLAREGOYLEDOWN_COOLDOWN
+
+	{SPR_BGAR,            0, 90, NULL,       0, 0, S_GLAREGOYLELONG_CHARGE, 0},  // S_GLAREGOYLELONG
+	{SPR_BGAR,            2,  6, NULL,       0, 0, S_GLAREGOYLELONG_BLINK, 0},  // S_GLAREGOYLELONG_CHARGE
+	{SPR_BGAR, FF_ANIMATE|1, 18, NULL,       1, 3, S_GLAREGOYLELONG_HOLD, 0}, // S_GLAREGOYLELONG_BLINK
+	{SPR_BGAR,            1,  9, NULL,       0, 0, S_GLAREGOYLELONG_FIRE, 0},  // S_GLAREGOYLELONG_HOLD
+	{SPR_BGAR,            1,  1, A_TrapShot, (16<<16)+MT_DEMONFIRE, (30<<16), S_GLAREGOYLELONG_LOOP, 0},  // S_GLAREGOYLELONG_FIRE
+	{SPR_BGAR,            1,  0, A_Repeat,   5, S_GLAREGOYLELONG_FIRE, S_GLAREGOYLELONG_COOLDOWN, 0}, // S_GLAREGOYLELONG_LOOP
+	{SPR_BGAR, FF_ANIMATE|1, 15, NULL,       1, 9, S_GLAREGOYLELONG, 0}, // S_GLAREGOYLELONG_COOLDOWN
 
 	// Target/Red Crystal
-	{SPR_RCRY,               0, -1, {NULL},                  0, 0, S_TARGET_IDLE, 0},  // S_TARGET_IDLE
-	{SPR_RCRY, FF_FULLBRIGHT|1,  0, {A_PlaySound},           sfx_ding, 1, S_TARGET_HIT2, 0},  // S_TARGET_HIT1
-	{SPR_RCRY, FF_FULLBRIGHT|1, 45, {A_SetObjectFlags},      MF_PUSHABLE, 2, S_TARGET_RESPAWN, 0},  // S_TARGET_HIT2
-	{SPR_RCRY,               1,  0, {A_SpawnObjectRelative}, 0, MT_TARGET, S_NULL, 0},  // S_TARGET_RESPAWN
-	{SPR_RCRY, FF_FULLBRIGHT|1, -1, {A_SetObjectFlags},      MF_PUSHABLE, 1, S_TARGET_ALLDONE, 0},  // S_TARGET_ALLDONE
+	{SPR_RCRY,               0, -1, NULL,                  0, 0, S_TARGET_IDLE, 0},  // S_TARGET_IDLE
+	{SPR_RCRY, FF_FULLBRIGHT|1,  0, A_PlaySound,           sfx_ding, 1, S_TARGET_HIT2, 0},  // S_TARGET_HIT1
+	{SPR_RCRY, FF_FULLBRIGHT|1, 45, A_SetObjectFlags,      MF_PUSHABLE, 2, S_TARGET_RESPAWN, 0},  // S_TARGET_HIT2
+	{SPR_RCRY,               1,  0, A_SpawnObjectRelative, 0, MT_TARGET, S_NULL, 0},  // S_TARGET_RESPAWN
+	{SPR_RCRY, FF_FULLBRIGHT|1, -1, A_SetObjectFlags,      MF_PUSHABLE, 1, S_TARGET_ALLDONE, 0},  // S_TARGET_ALLDONE
 
 	// Green flame
-	{SPR_CFLM, FF_FULLBRIGHT|FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 3, S_GREENFLAME, 0}, // S_GREENFLAME
+	{SPR_CFLM, FF_FULLBRIGHT|FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 3, S_GREENFLAME, 0}, // S_GREENFLAME
 
 	// ATZ Blue Gargoyle
-	{SPR_BGAR, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BLUEGARGOYLE
+	{SPR_BGAR, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BLUEGARGOYLE
 
 	// Stalagmites
-	{SPR_STLG, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG0
-	{SPR_STLG, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG1
-	{SPR_STLG, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG2
-	{SPR_STLG, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG3
-	{SPR_STLG, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG4
-	{SPR_STLG, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG5
-	{SPR_STLG, 6, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG6
-	{SPR_STLG, 7, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG7
-	{SPR_STLG, 8, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG8
-	{SPR_STLG, 9, -1, {NULL}, 0, 0, S_NULL, 0}, // S_STG9
+	{SPR_STLG, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_STG0
+	{SPR_STLG, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_STG1
+	{SPR_STLG, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_STG2
+	{SPR_STLG, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_STG3
+	{SPR_STLG, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_STG4
+	{SPR_STLG, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_STG5
+	{SPR_STLG, 6, -1, NULL, 0, 0, S_NULL, 0}, // S_STG6
+	{SPR_STLG, 7, -1, NULL, 0, 0, S_NULL, 0}, // S_STG7
+	{SPR_STLG, 8, -1, NULL, 0, 0, S_NULL, 0}, // S_STG8
+	{SPR_STLG, 9, -1, NULL, 0, 0, S_NULL, 0}, // S_STG9
 
 	// Xmas-specific stuff
-	{SPR_XMS1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASPOLE
-	{SPR_XMS2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CANDYCANE
-	{SPR_XMS3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SNOWMAN
-	{SPR_XMS3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SNOWMANHAT
-	{SPR_XMS4, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LAMPPOST1
-	{SPR_XMS4, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LAMPPOST2
-	{SPR_XMS5, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HANGSTAR
-	{SPR_XMS6, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MISTLETOE
-	{SPR_SNTT, 0, -1, {NULL}, 0, 0, S_NULL, 0}, 				// S_SSZTREE
-	{SPR_SNTT, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, 	// S_SSZTREE_BRANCH
-	{SPR_SSTT, 0, -1, {NULL}, 0, 0, S_NULL, 0}, 				// S_SSZTREE2
-	{SPR_SSTT, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, 	// S_SSZTREE2_BRANCH
+	{SPR_XMS1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_XMASPOLE
+	{SPR_XMS2, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_CANDYCANE
+	{SPR_XMS3, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SNOWMAN
+	{SPR_XMS3, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_SNOWMANHAT
+	{SPR_XMS4, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_LAMPPOST1
+	{SPR_XMS4, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_LAMPPOST2
+	{SPR_XMS5, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_HANGSTAR
+	{SPR_XMS6, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_MISTLETOE
+	{SPR_SNTT, 0, -1, NULL, 0, 0, S_NULL, 0}, 				// S_SSZTREE
+	{SPR_SNTT, 1|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, 	// S_SSZTREE_BRANCH
+	{SPR_SSTT, 0, -1, NULL, 0, 0, S_NULL, 0}, 				// S_SSZTREE2
+	{SPR_SSTT, 1|FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, 	// S_SSZTREE2_BRANCH
 	// Xmas GFZ bushes
-	{SPR_BUS3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBLUEBERRYBUSH
-	{SPR_BUS1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBERRYBUSH
-	{SPR_BUS2, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBUSH
+	{SPR_BUS3, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_XMASBLUEBERRYBUSH
+	{SPR_BUS1, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_XMASBERRYBUSH
+	{SPR_BUS2, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_XMASBUSH
 	// FHZ
-	{SPR_FHZI, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FHZICE1
-	{SPR_FHZI, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FHZICE2
+	{SPR_FHZI, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_FHZICE1
+	{SPR_FHZI, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_FHZICE2
 	// Amy FHZ cameo
-	{SPR_PLAY, SPR2_CNT1|FF_ANIMATE,      -1, {NULL}, 0, 0, S_NULL, 0}, // S_ROSY_IDLE
-	{SPR_PLAY,            SPR2_MSC0,      -1, {NULL}, 0, 0, S_NULL, 0}, // S_ROSY_JUMP
-	{SPR_PLAY,            SPR2_MSC1,      -1, {NULL}, 0, 0, S_NULL, 0}, // S_ROSY_FALL
-	{SPR_PLAY,            SPR2_WALK,      -1, {NULL}, 7, 0, S_NULL, 0}, // S_ROSY_WALK
-	{SPR_PLAY,            SPR2_MSC2,      -1, {NULL}, 0, 0, S_NULL, 0}, // S_ROSY_HUG
-	{SPR_PLAY,            SPR2_PAIN,      -1, {NULL}, 0, 0, S_NULL, 0}, // S_ROSY_PAIN
-	{SPR_PLAY, SPR2_WAIT|FF_ANIMATE,      -1, {NULL}, 0, 5, S_NULL, 0}, // S_ROSY_STND
-	{SPR_PLAY, SPR2_MSC3|FF_ANIMATE, TICRATE, {NULL}, 0, 4, S_ROSY_WALK, 0}, // S_ROSY_UNHAPPY
+	{SPR_PLAY, SPR2_CNT1|FF_ANIMATE,      -1, NULL, 0, 0, S_NULL, 0}, // S_ROSY_IDLE
+	{SPR_PLAY,            SPR2_MSC0,      -1, NULL, 0, 0, S_NULL, 0}, // S_ROSY_JUMP
+	{SPR_PLAY,            SPR2_MSC1,      -1, NULL, 0, 0, S_NULL, 0}, // S_ROSY_FALL
+	{SPR_PLAY,            SPR2_WALK,      -1, NULL, 7, 0, S_NULL, 0}, // S_ROSY_WALK
+	{SPR_PLAY,            SPR2_MSC2,      -1, NULL, 0, 0, S_NULL, 0}, // S_ROSY_HUG
+	{SPR_PLAY,            SPR2_PAIN,      -1, NULL, 0, 0, S_NULL, 0}, // S_ROSY_PAIN
+	{SPR_PLAY, SPR2_WAIT|FF_ANIMATE,      -1, NULL, 0, 5, S_NULL, 0}, // S_ROSY_STND
+	{SPR_PLAY, SPR2_MSC3|FF_ANIMATE, TICRATE, NULL, 0, 4, S_ROSY_WALK, 0}, // S_ROSY_UNHAPPY
 
 	// Halloween Scenery
 	// Pumpkins
-	{SPR_PUMK,  0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_JACKO1
-	{SPR_PUMK,  3|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO1OVERLAY_2, 0}, // S_JACKO1OVERLAY_1
-	{SPR_PUMK,  4|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO1OVERLAY_3, 0}, // S_JACKO1OVERLAY_2
-	{SPR_PUMK,  5|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO1OVERLAY_4, 0}, // S_JACKO1OVERLAY_3
-	{SPR_PUMK,  4|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO1OVERLAY_1, 0}, // S_JACKO1OVERLAY_4
-	{SPR_PUMK,  1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_JACKO2
-	{SPR_PUMK,  6|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO2OVERLAY_2, 0}, // S_JACKO2OVERLAY_1
-	{SPR_PUMK,  7|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO2OVERLAY_3, 0}, // S_JACKO2OVERLAY_2
-	{SPR_PUMK,  8|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO2OVERLAY_4, 0}, // S_JACKO2OVERLAY_3
-	{SPR_PUMK,  7|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO2OVERLAY_1, 0}, // S_JACKO2OVERLAY_4
-	{SPR_PUMK,  2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_JACKO3
-	{SPR_PUMK,  9|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO3OVERLAY_2, 0}, // S_JACKO3OVERLAY_1
-	{SPR_PUMK, 10|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO3OVERLAY_3, 0}, // S_JACKO3OVERLAY_2
-	{SPR_PUMK, 11|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO3OVERLAY_4, 0}, // S_JACKO3OVERLAY_3
-	{SPR_PUMK, 10|FF_FULLBRIGHT, 5, {NULL}, 0, 0, S_JACKO3OVERLAY_1, 0}, // S_JACKO3OVERLAY_4
+	{SPR_PUMK,  0, -1, NULL, 0, 0, S_NULL, 0}, // S_JACKO1
+	{SPR_PUMK,  3|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO1OVERLAY_2, 0}, // S_JACKO1OVERLAY_1
+	{SPR_PUMK,  4|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO1OVERLAY_3, 0}, // S_JACKO1OVERLAY_2
+	{SPR_PUMK,  5|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO1OVERLAY_4, 0}, // S_JACKO1OVERLAY_3
+	{SPR_PUMK,  4|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO1OVERLAY_1, 0}, // S_JACKO1OVERLAY_4
+	{SPR_PUMK,  1, -1, NULL, 0, 0, S_NULL, 0}, // S_JACKO2
+	{SPR_PUMK,  6|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO2OVERLAY_2, 0}, // S_JACKO2OVERLAY_1
+	{SPR_PUMK,  7|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO2OVERLAY_3, 0}, // S_JACKO2OVERLAY_2
+	{SPR_PUMK,  8|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO2OVERLAY_4, 0}, // S_JACKO2OVERLAY_3
+	{SPR_PUMK,  7|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO2OVERLAY_1, 0}, // S_JACKO2OVERLAY_4
+	{SPR_PUMK,  2, -1, NULL, 0, 0, S_NULL, 0}, // S_JACKO3
+	{SPR_PUMK,  9|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO3OVERLAY_2, 0}, // S_JACKO3OVERLAY_1
+	{SPR_PUMK, 10|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO3OVERLAY_3, 0}, // S_JACKO3OVERLAY_2
+	{SPR_PUMK, 11|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO3OVERLAY_4, 0}, // S_JACKO3OVERLAY_3
+	{SPR_PUMK, 10|FF_FULLBRIGHT, 5, NULL, 0, 0, S_JACKO3OVERLAY_1, 0}, // S_JACKO3OVERLAY_4
 	// Dr Seuss Trees
-	{SPR_HHPL, 2, -1, {A_ConnectToGround}, MT_HHZTREE_PART, 0, S_NULL, 0}, // S_HHZTREE_TOP,
-	{SPR_HHPL, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZTREE_TRUNK,
-	{SPR_HHPL, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZTREE_LEAF,
+	{SPR_HHPL, 2, -1, A_ConnectToGround, MT_HHZTREE_PART, 0, S_NULL, 0}, // S_HHZTREE_TOP,
+	{SPR_HHPL, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZTREE_TRUNK,
+	{SPR_HHPL, FF_PAPERSPRITE, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZTREE_LEAF,
 	// Mushroom
-	{SPR_SHRM, 4,  3, {NULL}, 0, 0, S_HHZSHROOM_2, 0},  // S_HHZSHROOM_1,
-	{SPR_SHRM, 3,  3, {NULL}, 0, 0, S_HHZSHROOM_3, 0},  // S_HHZSHROOM_2,
-	{SPR_SHRM, 2,  2, {NULL}, 0, 0, S_HHZSHROOM_4, 0},  // S_HHZSHROOM_3,
-	{SPR_SHRM, 1,  1, {NULL}, 0, 0, S_HHZSHROOM_5, 0},  // S_HHZSHROOM_4,
-	{SPR_SHRM, 0,  1, {NULL}, 0, 0, S_HHZSHROOM_6, 0},  // S_HHZSHROOM_5,
-	{SPR_SHRM, 1,  4, {NULL}, 0, 0, S_HHZSHROOM_7, 0},  // S_HHZSHROOM_6,
-	{SPR_SHRM, 2,  2, {NULL}, 0, 0, S_HHZSHROOM_8, 0},  // S_HHZSHROOM_7,
-	{SPR_SHRM, 3,  3, {NULL}, 0, 0, S_HHZSHROOM_9, 0},  // S_HHZSHROOM_8,
-	{SPR_SHRM, 4,  3, {NULL}, 0, 0, S_HHZSHROOM_10, 0}, // S_HHZSHROOM_9,
-	{SPR_SHRM, 3,  3, {NULL}, 0, 0, S_HHZSHROOM_11, 0}, // S_HHZSHROOM_10,
-	{SPR_SHRM, 5,  2, {NULL}, 0, 0, S_HHZSHROOM_12, 0}, // S_HHZSHROOM_11,
-	{SPR_SHRM, 6,  1, {NULL}, 0, 0, S_HHZSHROOM_13, 0}, // S_HHZSHROOM_12,
-	{SPR_SHRM, 7,  1, {NULL}, 0, 0, S_HHZSHROOM_14, 0}, // S_HHZSHROOM_13,
-	{SPR_SHRM, 6,  4, {NULL}, 0, 0, S_HHZSHROOM_15, 0}, // S_HHZSHROOM_14,
-	{SPR_SHRM, 5,  2, {NULL}, 0, 0, S_HHZSHROOM_16, 0}, // S_HHZSHROOM_15,
-	{SPR_SHRM, 3,  3, {NULL}, 0, 0, S_HHZSHROOM_1, 0},  // S_HHZSHROOM_16,
+	{SPR_SHRM, 4,  3, NULL, 0, 0, S_HHZSHROOM_2, 0},  // S_HHZSHROOM_1,
+	{SPR_SHRM, 3,  3, NULL, 0, 0, S_HHZSHROOM_3, 0},  // S_HHZSHROOM_2,
+	{SPR_SHRM, 2,  2, NULL, 0, 0, S_HHZSHROOM_4, 0},  // S_HHZSHROOM_3,
+	{SPR_SHRM, 1,  1, NULL, 0, 0, S_HHZSHROOM_5, 0},  // S_HHZSHROOM_4,
+	{SPR_SHRM, 0,  1, NULL, 0, 0, S_HHZSHROOM_6, 0},  // S_HHZSHROOM_5,
+	{SPR_SHRM, 1,  4, NULL, 0, 0, S_HHZSHROOM_7, 0},  // S_HHZSHROOM_6,
+	{SPR_SHRM, 2,  2, NULL, 0, 0, S_HHZSHROOM_8, 0},  // S_HHZSHROOM_7,
+	{SPR_SHRM, 3,  3, NULL, 0, 0, S_HHZSHROOM_9, 0},  // S_HHZSHROOM_8,
+	{SPR_SHRM, 4,  3, NULL, 0, 0, S_HHZSHROOM_10, 0}, // S_HHZSHROOM_9,
+	{SPR_SHRM, 3,  3, NULL, 0, 0, S_HHZSHROOM_11, 0}, // S_HHZSHROOM_10,
+	{SPR_SHRM, 5,  2, NULL, 0, 0, S_HHZSHROOM_12, 0}, // S_HHZSHROOM_11,
+	{SPR_SHRM, 6,  1, NULL, 0, 0, S_HHZSHROOM_13, 0}, // S_HHZSHROOM_12,
+	{SPR_SHRM, 7,  1, NULL, 0, 0, S_HHZSHROOM_14, 0}, // S_HHZSHROOM_13,
+	{SPR_SHRM, 6,  4, NULL, 0, 0, S_HHZSHROOM_15, 0}, // S_HHZSHROOM_14,
+	{SPR_SHRM, 5,  2, NULL, 0, 0, S_HHZSHROOM_16, 0}, // S_HHZSHROOM_15,
+	{SPR_SHRM, 3,  3, NULL, 0, 0, S_HHZSHROOM_1, 0},  // S_HHZSHROOM_16,
 	// Misc
-	{SPR_HHZM, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZGRASS,
-	{SPR_HHZM, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZTENT1,
-	{SPR_HHZM, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZTENT2,
-	{SPR_HHZM, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZSTALAGMITE_TALL,
-	{SPR_HHZM, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HHZSTALAGMITE_SHORT,
+	{SPR_HHZM, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZGRASS,
+	{SPR_HHZM, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZTENT1,
+	{SPR_HHZM, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZTENT2,
+	{SPR_HHZM, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZSTALAGMITE_TALL,
+	{SPR_HHZM, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_HHZSTALAGMITE_SHORT,
 
 	// Loads of Botanic Serenity bullshit
-	{SPR_BSZ1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_RED
-	{SPR_BSZ1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_PURPLE
-	{SPR_BSZ1, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_BLUE
-	{SPR_BSZ1, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_CYAN
-	{SPR_BSZ1, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_YELLOW
-	{SPR_BSZ1, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_ORANGE
-	{SPR_BSZ2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_RED
-	{SPR_BSZ2, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_PURPLE
-	{SPR_BSZ2, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_BLUE
-	{SPR_BSZ2, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_CYAN
-	{SPR_BSZ2, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_YELLOW
-	{SPR_BSZ2, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZFLOWER_ORANGE
-	{SPR_BSZ3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_RED
-	{SPR_BSZ3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_PURPLE
-	{SPR_BSZ3, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_BLUE
-	{SPR_BSZ3, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_CYAN
-	{SPR_BSZ3, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_YELLOW
-	{SPR_BSZ3, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_ORANGE
-	{SPR_BST1, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_RED
-	{SPR_BST2, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_PURPLE
-	{SPR_BST3, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_BLUE
-	{SPR_BST4, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_CYAN
-	{SPR_BST5, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_YELLOW
-	{SPR_BST6, FF_ANIMATE, -1, {NULL}, 11, 4, S_NULL, 0}, // S_BSZTULIP_ORANGE
-	{SPR_BSZ5, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_RED
-	{SPR_BSZ5, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_PURPLE
-	{SPR_BSZ5, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_BLUE
-	{SPR_BSZ5, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_CYAN
-	{SPR_BSZ5, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_YELLOW
-	{SPR_BSZ5, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_ORANGE
-	{SPR_BSZ6, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_RED
-	{SPR_BSZ6, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_PURPLE
-	{SPR_BSZ6, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_BLUE
-	{SPR_BSZ6, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_CYAN
-	{SPR_BSZ6, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_YELLOW
-	{SPR_BSZ6, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZBUSH_ORANGE
-	{SPR_BSZ7, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_RED
-	{SPR_BSZ7, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_PURPLE
-	{SPR_BSZ7, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_BLUE
-	{SPR_BSZ7, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_CYAN
-	{SPR_BSZ7, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_YELLOW
-	{SPR_BSZ7, 5, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZVINE_ORANGE
-	{SPR_BSZ8, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZSHRUB
-	{SPR_BSZ8, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BSZCLOVER
-	{SPR_BSZ8, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BIG_PALMTREE_TRUNK
-	{SPR_BSZ8, 3, -1, {A_ConnectToGround}, MT_BIG_PALMTREE_TRUNK, 0, S_NULL, 0}, // S_BIG_PALMTREE_TOP
-	{SPR_BSZ8, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_PALMTREE_TRUNK
-	{SPR_BSZ8, 5, -1, {A_ConnectToGround},     MT_PALMTREE_TRUNK, 0, S_NULL, 0}, // S_PALMTREE_TOP
+	{SPR_BSZ1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_RED
+	{SPR_BSZ1, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_PURPLE
+	{SPR_BSZ1, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_BLUE
+	{SPR_BSZ1, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_CYAN
+	{SPR_BSZ1, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_YELLOW
+	{SPR_BSZ1, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZTALLFLOWER_ORANGE
+	{SPR_BSZ2, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_RED
+	{SPR_BSZ2, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_PURPLE
+	{SPR_BSZ2, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_BLUE
+	{SPR_BSZ2, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_CYAN
+	{SPR_BSZ2, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_YELLOW
+	{SPR_BSZ2, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZFLOWER_ORANGE
+	{SPR_BSZ3, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_RED
+	{SPR_BSZ3, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_PURPLE
+	{SPR_BSZ3, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_BLUE
+	{SPR_BSZ3, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_CYAN
+	{SPR_BSZ3, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_YELLOW
+	{SPR_BSZ3, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHORTFLOWER_ORANGE
+	{SPR_BST1, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_RED
+	{SPR_BST2, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_PURPLE
+	{SPR_BST3, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_BLUE
+	{SPR_BST4, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_CYAN
+	{SPR_BST5, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_YELLOW
+	{SPR_BST6, FF_ANIMATE, -1, NULL, 11, 4, S_NULL, 0}, // S_BSZTULIP_ORANGE
+	{SPR_BSZ5, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_RED
+	{SPR_BSZ5, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_PURPLE
+	{SPR_BSZ5, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_BLUE
+	{SPR_BSZ5, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_CYAN
+	{SPR_BSZ5, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_YELLOW
+	{SPR_BSZ5, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLUSTER_ORANGE
+	{SPR_BSZ6, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_RED
+	{SPR_BSZ6, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_PURPLE
+	{SPR_BSZ6, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_BLUE
+	{SPR_BSZ6, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_CYAN
+	{SPR_BSZ6, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_YELLOW
+	{SPR_BSZ6, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZBUSH_ORANGE
+	{SPR_BSZ7, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_RED
+	{SPR_BSZ7, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_PURPLE
+	{SPR_BSZ7, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_BLUE
+	{SPR_BSZ7, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_CYAN
+	{SPR_BSZ7, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_YELLOW
+	{SPR_BSZ7, 5, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZVINE_ORANGE
+	{SPR_BSZ8, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZSHRUB
+	{SPR_BSZ8, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_BSZCLOVER
+	{SPR_BSZ8, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_BIG_PALMTREE_TRUNK
+	{SPR_BSZ8, 3, -1, A_ConnectToGround, MT_BIG_PALMTREE_TRUNK, 0, S_NULL, 0}, // S_BIG_PALMTREE_TOP
+	{SPR_BSZ8, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_PALMTREE_TRUNK
+	{SPR_BSZ8, 5, -1, A_ConnectToGround,     MT_PALMTREE_TRUNK, 0, S_NULL, 0}, // S_PALMTREE_TOP
 
 	// Disco ball
-	{SPR_DBAL, FF_FULLBRIGHT,   5, {NULL}, 0, 0, S_DBALL2, 0}, // S_DBALL1
-	{SPR_DBAL, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_DBALL3, 0}, // S_DBALL2
-	{SPR_DBAL, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_DBALL4, 0}, // S_DBALL3
-	{SPR_DBAL, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_DBALL5, 0}, // S_DBALL4
-	{SPR_DBAL, FF_FULLBRIGHT|4, 5, {NULL}, 0, 0, S_DBALL6, 0}, // S_DBALL5
-	{SPR_DBAL, FF_FULLBRIGHT|5, 5, {NULL}, 0, 0, S_DBALL1, 0}, // S_DBALL6
+	{SPR_DBAL, FF_FULLBRIGHT,   5, NULL, 0, 0, S_DBALL2, 0}, // S_DBALL1
+	{SPR_DBAL, FF_FULLBRIGHT|1, 5, NULL, 0, 0, S_DBALL3, 0}, // S_DBALL2
+	{SPR_DBAL, FF_FULLBRIGHT|2, 5, NULL, 0, 0, S_DBALL4, 0}, // S_DBALL3
+	{SPR_DBAL, FF_FULLBRIGHT|3, 5, NULL, 0, 0, S_DBALL5, 0}, // S_DBALL4
+	{SPR_DBAL, FF_FULLBRIGHT|4, 5, NULL, 0, 0, S_DBALL6, 0}, // S_DBALL5
+	{SPR_DBAL, FF_FULLBRIGHT|5, 5, NULL, 0, 0, S_DBALL1, 0}, // S_DBALL6
 
-	{SPR_ESTA, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EGGSTATUE2
+	{SPR_ESTA, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_EGGSTATUE2
 
-	{SPR_GINE, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_GINE
-	{SPR_PPAL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_PPAL
-	{SPR_PPAL, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_PPEL
+	{SPR_GINE, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_GINE
+	{SPR_PPAL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_PPAL
+	{SPR_PPAL, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_PPEL
 
 	// Shield Orb
-	{SPR_ARMA, FF_TRANS40   , 2, {NULL}, 0, 0, S_ARMA2 , 0}, // S_ARMA1
-	{SPR_ARMA, FF_TRANS40| 1, 2, {NULL}, 0, 0, S_ARMA3 , 0}, // S_ARMA2
-	{SPR_ARMA, FF_TRANS40| 2, 2, {NULL}, 0, 0, S_ARMA4 , 0}, // S_ARMA3
-	{SPR_ARMA, FF_TRANS40| 3, 2, {NULL}, 0, 0, S_ARMA5 , 0}, // S_ARMA4
-	{SPR_ARMA, FF_TRANS40| 4, 2, {NULL}, 0, 0, S_ARMA6 , 0}, // S_ARMA5
-	{SPR_ARMA, FF_TRANS40| 5, 2, {NULL}, 0, 0, S_ARMA7 , 0}, // S_ARMA6
-	{SPR_ARMA, FF_TRANS40| 6, 2, {NULL}, 0, 0, S_ARMA8 , 0}, // S_ARMA7
-	{SPR_ARMA, FF_TRANS40| 7, 2, {NULL}, 0, 0, S_ARMA9 , 0}, // S_ARMA8
-	{SPR_ARMA, FF_TRANS40| 8, 2, {NULL}, 0, 0, S_ARMA10, 0}, // S_ARMA9
-	{SPR_ARMA, FF_TRANS40| 9, 2, {NULL}, 0, 0, S_ARMA11, 0}, // S_ARMA10
-	{SPR_ARMA, FF_TRANS40|10, 2, {NULL}, 0, 0, S_ARMA12, 0}, // S_ARMA11
-	{SPR_ARMA, FF_TRANS40|11, 2, {NULL}, 0, 0, S_ARMA13, 0}, // S_ARMA12
-	{SPR_ARMA, FF_TRANS40|12, 2, {NULL}, 0, 0, S_ARMA14, 0}, // S_ARMA13
-	{SPR_ARMA, FF_TRANS40|13, 2, {NULL}, 0, 0, S_ARMA15, 0}, // S_ARMA14
-	{SPR_ARMA, FF_TRANS40|14, 2, {NULL}, 0, 0, S_ARMA16, 0}, // S_ARMA15
-	{SPR_ARMA, FF_TRANS40|15, 2, {NULL}, 0, 0, S_ARMA1 , 0}, // S_ARMA16
-
-	{SPR_ARMF, FF_FULLBRIGHT   , 2, {NULL}, 0, 0, S_ARMF2 , 0}, // S_ARMF1
-	{SPR_ARMF, FF_FULLBRIGHT| 1, 2, {NULL}, 0, 0, S_ARMF3 , 0}, // S_ARMF2
-	{SPR_ARMF, FF_FULLBRIGHT| 2, 2, {NULL}, 0, 0, S_ARMF4 , 0}, // S_ARMF3
-	{SPR_ARMF, FF_FULLBRIGHT| 3, 2, {NULL}, 0, 0, S_ARMF5 , 0}, // S_ARMF4
-	{SPR_ARMF, FF_FULLBRIGHT| 4, 2, {NULL}, 0, 0, S_ARMF6 , 0}, // S_ARMF5
-	{SPR_ARMF, FF_FULLBRIGHT| 5, 2, {NULL}, 0, 0, S_ARMF7 , 0}, // S_ARMF6
-	{SPR_ARMF, FF_FULLBRIGHT| 6, 2, {NULL}, 0, 0, S_ARMF8 , 0}, // S_ARMF7
-	{SPR_ARMF, FF_FULLBRIGHT| 7, 2, {NULL}, 0, 0, S_ARMF9 , 0}, // S_ARMF8
-	{SPR_ARMF, FF_FULLBRIGHT| 8, 2, {NULL}, 0, 0, S_ARMF10, 0}, // S_ARMF9
-	{SPR_ARMF, FF_FULLBRIGHT| 9, 2, {NULL}, 0, 0, S_ARMF11, 0}, // S_ARMF10
-	{SPR_ARMF, FF_FULLBRIGHT|10, 2, {NULL}, 0, 0, S_ARMF12, 0}, // S_ARMF11
-	{SPR_ARMF, FF_FULLBRIGHT|11, 2, {NULL}, 0, 0, S_ARMF13, 0}, // S_ARMF12
-	{SPR_ARMF, FF_FULLBRIGHT|12, 2, {NULL}, 0, 0, S_ARMF14, 0}, // S_ARMF13
-	{SPR_ARMF, FF_FULLBRIGHT|13, 2, {NULL}, 0, 0, S_ARMF15, 0}, // S_ARMF14
-	{SPR_ARMF, FF_FULLBRIGHT|14, 2, {NULL}, 0, 0, S_ARMF16, 0}, // S_ARMF15
-	{SPR_ARMF, FF_FULLBRIGHT|15, 2, {NULL}, 0, 0, S_ARMF17, 0}, // S_ARMF16
-	{SPR_ARMB, FF_FULLBRIGHT   , 2, {NULL}, 0, 0, S_ARMF18, 0}, // S_ARMF17
-	{SPR_ARMB, FF_FULLBRIGHT| 1, 2, {NULL}, 0, 0, S_ARMF19, 0}, // S_ARMF18
-	{SPR_ARMB, FF_FULLBRIGHT| 2, 2, {NULL}, 0, 0, S_ARMF20, 0}, // S_ARMF19
-	{SPR_ARMB, FF_FULLBRIGHT| 3, 2, {NULL}, 0, 0, S_ARMF21, 0}, // S_ARMF20
-	{SPR_ARMB, FF_FULLBRIGHT| 4, 2, {NULL}, 0, 0, S_ARMF22, 0}, // S_ARMF21
-	{SPR_ARMB, FF_FULLBRIGHT| 5, 2, {NULL}, 0, 0, S_ARMF23, 0}, // S_ARMF22
-	{SPR_ARMB, FF_FULLBRIGHT| 6, 2, {NULL}, 0, 0, S_ARMF24, 0}, // S_ARMF23
-	{SPR_ARMB, FF_FULLBRIGHT| 7, 2, {NULL}, 0, 0, S_ARMF25, 0}, // S_ARMF24
-	{SPR_ARMB, FF_FULLBRIGHT| 8, 2, {NULL}, 0, 0, S_ARMF26, 0}, // S_ARMF25
-	{SPR_ARMB, FF_FULLBRIGHT| 9, 2, {NULL}, 0, 0, S_ARMF27, 0}, // S_ARMF26
-	{SPR_ARMB, FF_FULLBRIGHT|10, 2, {NULL}, 0, 0, S_ARMF28, 0}, // S_ARMF27
-	{SPR_ARMB, FF_FULLBRIGHT|11, 2, {NULL}, 0, 0, S_ARMF29, 0}, // S_ARMF28
-	{SPR_ARMB, FF_FULLBRIGHT|12, 2, {NULL}, 0, 0, S_ARMF30, 0}, // S_ARMF29
-	{SPR_ARMB, FF_FULLBRIGHT|13, 2, {NULL}, 0, 0, S_ARMF31, 0}, // S_ARMF30
-	{SPR_ARMB, FF_FULLBRIGHT|14, 2, {NULL}, 0, 0, S_ARMF32, 0}, // S_ARMF31
-	{SPR_ARMB, FF_FULLBRIGHT|15, 2, {NULL}, 0, 0, S_ARMF1 , 0}, // S_ARMF32
-
-	{SPR_ARMB, FF_FULLBRIGHT   , 2, {NULL}, 1, 0, S_ARMB2 , 0}, // S_ARMB1
-	{SPR_ARMB, FF_FULLBRIGHT| 1, 2, {NULL}, 1, 0, S_ARMB3 , 0}, // S_ARMB2
-	{SPR_ARMB, FF_FULLBRIGHT| 2, 2, {NULL}, 1, 0, S_ARMB4 , 0}, // S_ARMB3
-	{SPR_ARMB, FF_FULLBRIGHT| 3, 2, {NULL}, 1, 0, S_ARMB5 , 0}, // S_ARMB4
-	{SPR_ARMB, FF_FULLBRIGHT| 4, 2, {NULL}, 1, 0, S_ARMB6 , 0}, // S_ARMB5
-	{SPR_ARMB, FF_FULLBRIGHT| 5, 2, {NULL}, 1, 0, S_ARMB7 , 0}, // S_ARMB6
-	{SPR_ARMB, FF_FULLBRIGHT| 6, 2, {NULL}, 1, 0, S_ARMB8 , 0}, // S_ARMB7
-	{SPR_ARMB, FF_FULLBRIGHT| 7, 2, {NULL}, 1, 0, S_ARMB9 , 0}, // S_ARMB8
-	{SPR_ARMB, FF_FULLBRIGHT| 8, 2, {NULL}, 1, 0, S_ARMB10, 0}, // S_ARMB9
-	{SPR_ARMB, FF_FULLBRIGHT| 9, 2, {NULL}, 1, 0, S_ARMB11, 0}, // S_ARMB10
-	{SPR_ARMB, FF_FULLBRIGHT|10, 2, {NULL}, 1, 0, S_ARMB12, 0}, // S_ARMB11
-	{SPR_ARMB, FF_FULLBRIGHT|11, 2, {NULL}, 1, 0, S_ARMB13, 0}, // S_ARMB12
-	{SPR_ARMB, FF_FULLBRIGHT|12, 2, {NULL}, 1, 0, S_ARMB14, 0}, // S_ARMB13
-	{SPR_ARMB, FF_FULLBRIGHT|13, 2, {NULL}, 1, 0, S_ARMB15, 0}, // S_ARMB14
-	{SPR_ARMB, FF_FULLBRIGHT|14, 2, {NULL}, 1, 0, S_ARMB16, 0}, // S_ARMB15
-	{SPR_ARMB, FF_FULLBRIGHT|15, 2, {NULL}, 1, 0, S_ARMB17, 0}, // S_ARMB16
-	{SPR_ARMF, FF_FULLBRIGHT   , 2, {NULL}, 1, 0, S_ARMB18, 0}, // S_ARMB17
-	{SPR_ARMF, FF_FULLBRIGHT| 1, 2, {NULL}, 1, 0, S_ARMB19, 0}, // S_ARMB18
-	{SPR_ARMF, FF_FULLBRIGHT| 2, 2, {NULL}, 1, 0, S_ARMB20, 0}, // S_ARMB19
-	{SPR_ARMF, FF_FULLBRIGHT| 3, 2, {NULL}, 1, 0, S_ARMB21, 0}, // S_ARMB20
-	{SPR_ARMF, FF_FULLBRIGHT| 4, 2, {NULL}, 1, 0, S_ARMB22, 0}, // S_ARMB21
-	{SPR_ARMF, FF_FULLBRIGHT| 5, 2, {NULL}, 1, 0, S_ARMB23, 0}, // S_ARMB22
-	{SPR_ARMF, FF_FULLBRIGHT| 6, 2, {NULL}, 1, 0, S_ARMB24, 0}, // S_ARMB23
-	{SPR_ARMF, FF_FULLBRIGHT| 7, 2, {NULL}, 1, 0, S_ARMB25, 0}, // S_ARMB24
-	{SPR_ARMF, FF_FULLBRIGHT| 8, 2, {NULL}, 1, 0, S_ARMB26, 0}, // S_ARMB25
-	{SPR_ARMF, FF_FULLBRIGHT| 9, 2, {NULL}, 1, 0, S_ARMB27, 0}, // S_ARMB26
-	{SPR_ARMF, FF_FULLBRIGHT|10, 2, {NULL}, 1, 0, S_ARMB28, 0}, // S_ARMB27
-	{SPR_ARMF, FF_FULLBRIGHT|11, 2, {NULL}, 1, 0, S_ARMB29, 0}, // S_ARMB28
-	{SPR_ARMF, FF_FULLBRIGHT|12, 2, {NULL}, 1, 0, S_ARMB30, 0}, // S_ARMB29
-	{SPR_ARMF, FF_FULLBRIGHT|13, 2, {NULL}, 1, 0, S_ARMB31, 0}, // S_ARMB30
-	{SPR_ARMF, FF_FULLBRIGHT|14, 2, {NULL}, 1, 0, S_ARMB32, 0}, // S_ARMB31
-	{SPR_ARMF, FF_FULLBRIGHT|15, 2, {NULL}, 1, 0, S_ARMB1 , 0}, // S_ARMB32
-
-	{SPR_WIND, FF_TRANS70  , 2, {NULL}, 0, 0, S_WIND2, 0}, // S_WIND1
-	{SPR_WIND, FF_TRANS70|1, 2, {NULL}, 0, 0, S_WIND3, 0}, // S_WIND2
-	{SPR_WIND, FF_TRANS70|2, 2, {NULL}, 0, 0, S_WIND4, 0}, // S_WIND3
-	{SPR_WIND, FF_TRANS70|3, 2, {NULL}, 0, 0, S_WIND5, 0}, // S_WIND4
-	{SPR_WIND, FF_TRANS70|4, 2, {NULL}, 0, 0, S_WIND6, 0}, // S_WIND5
-	{SPR_WIND, FF_TRANS70|5, 2, {NULL}, 0, 0, S_WIND7, 0}, // S_WIND6
-	{SPR_WIND, FF_TRANS70|6, 2, {NULL}, 0, 0, S_WIND8, 0}, // S_WIND7
-	{SPR_WIND, FF_TRANS70|7, 2, {NULL}, 0, 0, S_WIND1, 0}, // S_WIND8
-
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40   , 2, {NULL}, 0, 0, S_MAGN2 , 0}, // S_MAGN1
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 1, 2, {NULL}, 0, 0, S_MAGN3 , 0}, // S_MAGN2
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 2, 2, {NULL}, 0, 0, S_MAGN4 , 0}, // S_MAGN3
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 3, 2, {NULL}, 0, 0, S_MAGN5 , 0}, // S_MAGN4
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 4, 2, {NULL}, 0, 0, S_MAGN6 , 0}, // S_MAGN5
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 5, 2, {NULL}, 0, 0, S_MAGN7 , 0}, // S_MAGN6
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 6, 2, {NULL}, 0, 0, S_MAGN8 , 0}, // S_MAGN7
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 7, 2, {NULL}, 0, 0, S_MAGN9 , 0}, // S_MAGN8
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 8, 2, {NULL}, 0, 0, S_MAGN10, 0}, // S_MAGN9
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 9, 2, {NULL}, 0, 0, S_MAGN11, 0}, // S_MAGN10
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40|10, 2, {NULL}, 0, 0, S_MAGN12, 0}, // S_MAGN11
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40|11, 2, {NULL}, 0, 0, S_MAGN1 , 0}, // S_MAGN12
-
-	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS10|12, 2, {NULL}, 0, 0, S_MAGN1 , 0}, // S_MAGN13
-
-	{SPR_FORC, FF_TRANS50  , 3, {NULL}, 0, 0, S_FORC2 , 0}, // S_FORC1
-	{SPR_FORC, FF_TRANS50|1, 3, {NULL}, 0, 0, S_FORC3 , 0}, // S_FORC2
-	{SPR_FORC, FF_TRANS50|2, 3, {NULL}, 0, 0, S_FORC4 , 0}, // S_FORC3
-	{SPR_FORC, FF_TRANS50|3, 3, {NULL}, 0, 0, S_FORC5 , 0}, // S_FORC4
-	{SPR_FORC, FF_TRANS50|4, 3, {NULL}, 0, 0, S_FORC6 , 0}, // S_FORC5
-	{SPR_FORC, FF_TRANS50|5, 3, {NULL}, 0, 0, S_FORC7 , 0}, // S_FORC6
-	{SPR_FORC, FF_TRANS50|6, 3, {NULL}, 0, 0, S_FORC8 , 0}, // S_FORC7
-	{SPR_FORC, FF_TRANS50|7, 3, {NULL}, 0, 0, S_FORC9 , 0}, // S_FORC8
-	{SPR_FORC, FF_TRANS50|8, 3, {NULL}, 0, 0, S_FORC10, 0}, // S_FORC9
-	{SPR_FORC, FF_TRANS50|9, 3, {NULL}, 0, 0, S_FORC1 , 0}, // S_FORC10
-
-	{SPR_FORC, FF_TRANS50|10, 3, {NULL}, 0, 0, S_FORC12, 0}, // S_FORC11
-	{SPR_FORC, FF_TRANS50|11, 3, {NULL}, 0, 0, S_FORC13, 0}, // S_FORC12
-	{SPR_FORC, FF_TRANS50|12, 3, {NULL}, 0, 0, S_FORC14, 0}, // S_FORC13
-	{SPR_FORC, FF_TRANS50|13, 3, {NULL}, 0, 0, S_FORC15, 0}, // S_FORC14
-	{SPR_FORC, FF_TRANS50|14, 3, {NULL}, 0, 0, S_FORC16, 0}, // S_FORC15
-	{SPR_FORC, FF_TRANS50|15, 3, {NULL}, 0, 0, S_FORC17, 0}, // S_FORC16
-	{SPR_FORC, FF_TRANS50|16, 3, {NULL}, 0, 0, S_FORC18, 0}, // S_FORC17
-	{SPR_FORC, FF_TRANS50|17, 3, {NULL}, 0, 0, S_FORC19, 0}, // S_FORC18
-	{SPR_FORC, FF_TRANS50|18, 3, {NULL}, 0, 0, S_FORC20, 0}, // S_FORC19
-	{SPR_FORC, FF_TRANS50|19, 3, {NULL}, 0, 0, S_FORC11, 0}, // S_FORC20
-
-	{SPR_FORC, FF_TRANS50|20, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FORC21
-
-	{SPR_ELEM, FF_TRANS50   , 4, {NULL}, 0, 0, S_ELEM2 , 0}, // S_ELEM1
-	{SPR_ELEM, FF_TRANS50| 1, 4, {NULL}, 0, 0, S_ELEM3 , 0}, // S_ELEM2
-	{SPR_ELEM, FF_TRANS50| 2, 4, {NULL}, 0, 0, S_ELEM4 , 0}, // S_ELEM3
-	{SPR_ELEM, FF_TRANS50| 3, 4, {NULL}, 0, 0, S_ELEM5 , 0}, // S_ELEM4
-	{SPR_ELEM, FF_TRANS50| 4, 4, {NULL}, 0, 0, S_ELEM6 , 0}, // S_ELEM5
-	{SPR_ELEM, FF_TRANS50| 5, 4, {NULL}, 0, 0, S_ELEM7 , 0}, // S_ELEM6
-	{SPR_ELEM, FF_TRANS50| 6, 4, {NULL}, 0, 0, S_ELEM8 , 0}, // S_ELEM7
-	{SPR_ELEM, FF_TRANS50| 7, 4, {NULL}, 0, 0, S_ELEM9 , 0}, // S_ELEM8
-	{SPR_ELEM, FF_TRANS50| 8, 4, {NULL}, 0, 0, S_ELEM10, 0}, // S_ELEM9
-	{SPR_ELEM, FF_TRANS50| 9, 4, {NULL}, 0, 0, S_ELEM11, 0}, // S_ELEM10
-	{SPR_ELEM, FF_TRANS50|10, 4, {NULL}, 0, 0, S_ELEM12, 0}, // S_ELEM11
-	{SPR_ELEM, FF_TRANS50|11, 4, {NULL}, 0, 0, S_ELEM1 , 0}, // S_ELEM12
-
-	{SPR_NULL,             0, 1, {NULL}, 0, 0, S_ELEM14, 0}, // S_ELEM13
-	{SPR_ELEM, FF_TRANS50|11, 1, {NULL}, 0, 0, S_ELEM1 , 0}, // S_ELEM14
-
-	{SPR_ELEM, FF_FULLBRIGHT|12, 3, {NULL}, 0, 0, S_ELEMF2 , 0}, // S_ELEMF1
-	{SPR_ELEM, FF_FULLBRIGHT|13, 3, {NULL}, 0, 0, S_ELEMF3 , 0}, // S_ELEMF2
-	{SPR_ELEM, FF_FULLBRIGHT|14, 3, {NULL}, 0, 0, S_ELEMF4 , 0}, // S_ELEMF3
-	{SPR_ELEM, FF_FULLBRIGHT|15, 3, {NULL}, 0, 0, S_ELEMF5 , 0}, // S_ELEMF4
-	{SPR_ELEM, FF_FULLBRIGHT|16, 3, {NULL}, 0, 0, S_ELEMF6 , 0}, // S_ELEMF5
-	{SPR_ELEM, FF_FULLBRIGHT|17, 3, {NULL}, 0, 0, S_ELEMF7 , 0}, // S_ELEMF6
-	{SPR_ELEM, FF_FULLBRIGHT|18, 3, {NULL}, 0, 0, S_ELEMF8 , 0}, // S_ELEMF7
-	{SPR_ELEM, FF_FULLBRIGHT|19, 3, {NULL}, 0, 0, S_ELEMF1 , 0}, // S_ELEMF8
-
-	{SPR_ELEM, FF_FULLBRIGHT|20, 1, {NULL}, 0, 0, S_ELEMF10, 0}, // S_ELEMF9
-	{SPR_NULL, 0,                1, {NULL}, 0, 0, S_ELEMF1 , 0}, // S_ELEMF10
-
-	{SPR_PITY, FF_TRANS30   , 2, {NULL}, 0, 0, S_PITY2, 0},  // S_PITY1
-	{SPR_PITY, FF_TRANS30| 1, 2, {NULL}, 0, 0, S_PITY3, 0},  // S_PITY2
-	{SPR_PITY, FF_TRANS30| 2, 2, {NULL}, 0, 0, S_PITY4, 0},  // S_PITY3
-	{SPR_PITY, FF_TRANS30| 3, 2, {NULL}, 0, 0, S_PITY5, 0},  // S_PITY4
-	{SPR_PITY, FF_TRANS30| 4, 2, {NULL}, 0, 0, S_PITY6, 0},  // S_PITY5
-	{SPR_PITY, FF_TRANS30| 5, 2, {NULL}, 0, 0, S_PITY7, 0},  // S_PITY6
-	{SPR_PITY, FF_TRANS30| 6, 2, {NULL}, 0, 0, S_PITY8, 0},  // S_PITY7
-	{SPR_PITY, FF_TRANS30| 7, 2, {NULL}, 0, 0, S_PITY9, 0},  // S_PITY8
-	{SPR_PITY, FF_TRANS30| 8, 2, {NULL}, 0, 0, S_PITY10, 0}, // S_PITY9
-	{SPR_PITY, FF_TRANS30| 9, 2, {NULL}, 0, 0, S_PITY11, 0}, // S_PITY10
-	{SPR_PITY, FF_TRANS30|10, 2, {NULL}, 0, 0, S_PITY12, 0}, // S_PITY11
-	{SPR_PITY, FF_TRANS30|11, 2, {NULL}, 0, 0, S_PITY1, 0},  // S_PITY12
-
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40  , 2, {NULL}, 0, 0, S_FIRS2, 0}, // S_FIRS1
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|1, 2, {NULL}, 0, 0, S_FIRS3, 0}, // S_FIRS2
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|2, 2, {NULL}, 0, 0, S_FIRS4, 0}, // S_FIRS3
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|3, 2, {NULL}, 0, 0, S_FIRS5, 0}, // S_FIRS4
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|4, 2, {NULL}, 0, 0, S_FIRS6, 0}, // S_FIRS5
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|5, 2, {NULL}, 0, 0, S_FIRS7, 0}, // S_FIRS6
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|6, 2, {NULL}, 0, 0, S_FIRS8, 0}, // S_FIRS7
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|7, 2, {NULL}, 0, 0, S_FIRS9, 0}, // S_FIRS8
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|8, 2, {NULL}, 0, 0, S_FIRS1, 0}, // S_FIRS9
-
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|18, 1, {NULL}, 0, 0, S_FIRS11, 0}, // S_FIRS10
-	{SPR_NULL, 0,                           1, {NULL}, 0, 0, S_FIRS1 , 0}, // S_FIRS11
-
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40| 9, 2, {NULL}, 0, 0, S_FIRSB2, 0}, // S_FIRSB1
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|10, 2, {NULL}, 0, 0, S_FIRSB3, 0}, // S_FIRSB2
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|11, 2, {NULL}, 0, 0, S_FIRSB4, 0}, // S_FIRSB3
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|12, 2, {NULL}, 0, 0, S_FIRSB5, 0}, // S_FIRSB4
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|13, 2, {NULL}, 0, 0, S_FIRSB6, 0}, // S_FIRSB5
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|14, 2, {NULL}, 0, 0, S_FIRSB7, 0}, // S_FIRSB6
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|15, 2, {NULL}, 0, 0, S_FIRSB8, 0}, // S_FIRSB7
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|16, 2, {NULL}, 0, 0, S_FIRSB9, 0}, // S_FIRSB8
-	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|17, 2, {NULL}, 0, 0, S_FIRSB1, 0}, // S_FIRSB9
-
-	{SPR_NULL, 0,                           2, {NULL}, 0, 0, S_FIRSB1 , 0}, // S_FIRSB10
-
-	{SPR_BUBS, FF_TRANS30  , 3, {NULL}, 0, 0, S_BUBS2, 0}, // S_BUBS1
-	{SPR_BUBS, FF_TRANS30|1, 3, {NULL}, 0, 0, S_BUBS3, 0}, // S_BUBS2
-	{SPR_BUBS, FF_TRANS30|2, 3, {NULL}, 0, 0, S_BUBS4, 0}, // S_BUBS3
-	{SPR_BUBS, FF_TRANS30|3, 3, {NULL}, 0, 0, S_BUBS5, 0}, // S_BUBS4
-	{SPR_BUBS, FF_TRANS30|4, 3, {NULL}, 0, 0, S_BUBS6, 0}, // S_BUBS5
-	{SPR_BUBS, FF_TRANS30|5, 3, {NULL}, 0, 0, S_BUBS7, 0}, // S_BUBS6
-	{SPR_BUBS, FF_TRANS30|6, 3, {NULL}, 0, 0, S_BUBS8, 0}, // S_BUBS7
-	{SPR_BUBS, FF_TRANS30|7, 3, {NULL}, 0, 0, S_BUBS9, 0}, // S_BUBS8
-	{SPR_BUBS, FF_TRANS30|8, 3, {NULL}, 0, 0, S_BUBS1, 0}, // S_BUBS9
-
-	{SPR_NULL, 0,   3, {NULL}, 0, 0, S_BUBS1, 0}, // S_BUBS10
-	{SPR_NULL, 0, 4*3, {NULL}, 0, 0, S_BUBS1, 0}, // S_BUBS11
-
-	{SPR_BUBS, FF_TRANS30| 9, 3, {NULL}, 0, 0, S_BUBSB2, 0}, // S_BUBSB1
-	{SPR_BUBS, FF_TRANS30|10, 3, {NULL}, 0, 0, S_BUBSB3, 0}, // S_BUBSB2
-	{SPR_BUBS, FF_TRANS30|11, 3, {NULL}, 0, 0, S_BUBSB4, 0}, // S_BUBSB3
-	{SPR_BUBS, FF_TRANS30|10, 3, {NULL}, 0, 0, S_BUBSB1, 0}, // S_BUBSB4
-
-	{SPR_BUBS, FF_TRANS30|12, 3, {NULL}, 0, 0, S_BUBSB3, 0}, // S_BUBSB5
-	{SPR_BUBS, FF_TRANS30|13, 3, {NULL}, 0, 0, S_BUBSB5, 0}, // S_BUBSB6
-
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20   ,   2, {NULL}, 0, 0, S_ZAPS2 , 0}, // S_ZAPS1
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 1,   2, {NULL}, 0, 0, S_ZAPS3 , 0}, // S_ZAPS2
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 2,   2, {NULL}, 0, 0, S_ZAPS4 , 0}, // S_ZAPS3
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 3,   2, {NULL}, 0, 0, S_ZAPS5 , 0}, // S_ZAPS4
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 4,   2, {NULL}, 0, 0, S_ZAPS6 , 0}, // S_ZAPS5
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 5,   2, {NULL}, 0, 0, S_ZAPS7 , 0}, // S_ZAPS6
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 6,   2, {NULL}, 0, 0, S_ZAPS8 , 0}, // S_ZAPS7
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 7,   2, {NULL}, 0, 0, S_ZAPS9 , 0}, // S_ZAPS8
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 8,   2, {NULL}, 0, 0, S_ZAPS10, 0}, // S_ZAPS9
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 9,   2, {NULL}, 0, 0, S_ZAPS11, 0}, // S_ZAPS10
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|10,   2, {NULL}, 0, 0, S_ZAPS12, 0}, // S_ZAPS11
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|11,   2, {NULL}, 0, 0, S_ZAPS13, 0}, // S_ZAPS12
-	{SPR_NULL,                           0, 9*2, {NULL}, 0, 0, S_ZAPS14, 0}, // S_ZAPS13
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 9,   2, {NULL}, 0, 0, S_ZAPS15, 0}, // S_ZAPS14
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|10,   2, {NULL}, 0, 0, S_ZAPS16, 0}, // S_ZAPS15
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|11,   2, {NULL}, 0, 0, S_ZAPS1 , 0}, // S_ZAPS16
-
-	{SPR_NULL,                           0, 12*2, {NULL}, 0, 0, S_ZAPSB2 , 0}, // S_ZAPSB1
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 8,    2, {NULL}, 0, 0, S_ZAPSB3 , 0}, // S_ZAPSB2
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 7,    2, {NULL}, 0, 0, S_ZAPSB4 , 0}, // S_ZAPSB3
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 6,    2, {NULL}, 0, 0, S_ZAPSB5 , 0}, // S_ZAPSB4
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 5,    2, {NULL}, 0, 0, S_ZAPSB6 , 0}, // S_ZAPSB5
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 4,    2, {NULL}, 0, 0, S_ZAPSB7 , 0}, // S_ZAPSB6
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 3,    2, {NULL}, 0, 0, S_ZAPSB8 , 0}, // S_ZAPSB7
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 2,    2, {NULL}, 0, 0, S_ZAPSB9 , 0}, // S_ZAPSB8
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 1,    2, {NULL}, 0, 0, S_ZAPSB10, 0}, // S_ZAPSB9
-	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20   ,    2, {NULL}, 0, 0, S_ZAPSB11, 0}, // S_ZAPSB10
-	{SPR_NULL,                           0, 15*2, {NULL}, 0, 0, S_ZAPSB2 , 0}, // S_ZAPSB11
+	{SPR_ARMA, FF_TRANS40   , 2, NULL, 0, 0, S_ARMA2 , 0}, // S_ARMA1
+	{SPR_ARMA, FF_TRANS40| 1, 2, NULL, 0, 0, S_ARMA3 , 0}, // S_ARMA2
+	{SPR_ARMA, FF_TRANS40| 2, 2, NULL, 0, 0, S_ARMA4 , 0}, // S_ARMA3
+	{SPR_ARMA, FF_TRANS40| 3, 2, NULL, 0, 0, S_ARMA5 , 0}, // S_ARMA4
+	{SPR_ARMA, FF_TRANS40| 4, 2, NULL, 0, 0, S_ARMA6 , 0}, // S_ARMA5
+	{SPR_ARMA, FF_TRANS40| 5, 2, NULL, 0, 0, S_ARMA7 , 0}, // S_ARMA6
+	{SPR_ARMA, FF_TRANS40| 6, 2, NULL, 0, 0, S_ARMA8 , 0}, // S_ARMA7
+	{SPR_ARMA, FF_TRANS40| 7, 2, NULL, 0, 0, S_ARMA9 , 0}, // S_ARMA8
+	{SPR_ARMA, FF_TRANS40| 8, 2, NULL, 0, 0, S_ARMA10, 0}, // S_ARMA9
+	{SPR_ARMA, FF_TRANS40| 9, 2, NULL, 0, 0, S_ARMA11, 0}, // S_ARMA10
+	{SPR_ARMA, FF_TRANS40|10, 2, NULL, 0, 0, S_ARMA12, 0}, // S_ARMA11
+	{SPR_ARMA, FF_TRANS40|11, 2, NULL, 0, 0, S_ARMA13, 0}, // S_ARMA12
+	{SPR_ARMA, FF_TRANS40|12, 2, NULL, 0, 0, S_ARMA14, 0}, // S_ARMA13
+	{SPR_ARMA, FF_TRANS40|13, 2, NULL, 0, 0, S_ARMA15, 0}, // S_ARMA14
+	{SPR_ARMA, FF_TRANS40|14, 2, NULL, 0, 0, S_ARMA16, 0}, // S_ARMA15
+	{SPR_ARMA, FF_TRANS40|15, 2, NULL, 0, 0, S_ARMA1 , 0}, // S_ARMA16
+
+	{SPR_ARMF, FF_FULLBRIGHT   , 2, NULL, 0, 0, S_ARMF2 , 0}, // S_ARMF1
+	{SPR_ARMF, FF_FULLBRIGHT| 1, 2, NULL, 0, 0, S_ARMF3 , 0}, // S_ARMF2
+	{SPR_ARMF, FF_FULLBRIGHT| 2, 2, NULL, 0, 0, S_ARMF4 , 0}, // S_ARMF3
+	{SPR_ARMF, FF_FULLBRIGHT| 3, 2, NULL, 0, 0, S_ARMF5 , 0}, // S_ARMF4
+	{SPR_ARMF, FF_FULLBRIGHT| 4, 2, NULL, 0, 0, S_ARMF6 , 0}, // S_ARMF5
+	{SPR_ARMF, FF_FULLBRIGHT| 5, 2, NULL, 0, 0, S_ARMF7 , 0}, // S_ARMF6
+	{SPR_ARMF, FF_FULLBRIGHT| 6, 2, NULL, 0, 0, S_ARMF8 , 0}, // S_ARMF7
+	{SPR_ARMF, FF_FULLBRIGHT| 7, 2, NULL, 0, 0, S_ARMF9 , 0}, // S_ARMF8
+	{SPR_ARMF, FF_FULLBRIGHT| 8, 2, NULL, 0, 0, S_ARMF10, 0}, // S_ARMF9
+	{SPR_ARMF, FF_FULLBRIGHT| 9, 2, NULL, 0, 0, S_ARMF11, 0}, // S_ARMF10
+	{SPR_ARMF, FF_FULLBRIGHT|10, 2, NULL, 0, 0, S_ARMF12, 0}, // S_ARMF11
+	{SPR_ARMF, FF_FULLBRIGHT|11, 2, NULL, 0, 0, S_ARMF13, 0}, // S_ARMF12
+	{SPR_ARMF, FF_FULLBRIGHT|12, 2, NULL, 0, 0, S_ARMF14, 0}, // S_ARMF13
+	{SPR_ARMF, FF_FULLBRIGHT|13, 2, NULL, 0, 0, S_ARMF15, 0}, // S_ARMF14
+	{SPR_ARMF, FF_FULLBRIGHT|14, 2, NULL, 0, 0, S_ARMF16, 0}, // S_ARMF15
+	{SPR_ARMF, FF_FULLBRIGHT|15, 2, NULL, 0, 0, S_ARMF17, 0}, // S_ARMF16
+	{SPR_ARMB, FF_FULLBRIGHT   , 2, NULL, 0, 0, S_ARMF18, 0}, // S_ARMF17
+	{SPR_ARMB, FF_FULLBRIGHT| 1, 2, NULL, 0, 0, S_ARMF19, 0}, // S_ARMF18
+	{SPR_ARMB, FF_FULLBRIGHT| 2, 2, NULL, 0, 0, S_ARMF20, 0}, // S_ARMF19
+	{SPR_ARMB, FF_FULLBRIGHT| 3, 2, NULL, 0, 0, S_ARMF21, 0}, // S_ARMF20
+	{SPR_ARMB, FF_FULLBRIGHT| 4, 2, NULL, 0, 0, S_ARMF22, 0}, // S_ARMF21
+	{SPR_ARMB, FF_FULLBRIGHT| 5, 2, NULL, 0, 0, S_ARMF23, 0}, // S_ARMF22
+	{SPR_ARMB, FF_FULLBRIGHT| 6, 2, NULL, 0, 0, S_ARMF24, 0}, // S_ARMF23
+	{SPR_ARMB, FF_FULLBRIGHT| 7, 2, NULL, 0, 0, S_ARMF25, 0}, // S_ARMF24
+	{SPR_ARMB, FF_FULLBRIGHT| 8, 2, NULL, 0, 0, S_ARMF26, 0}, // S_ARMF25
+	{SPR_ARMB, FF_FULLBRIGHT| 9, 2, NULL, 0, 0, S_ARMF27, 0}, // S_ARMF26
+	{SPR_ARMB, FF_FULLBRIGHT|10, 2, NULL, 0, 0, S_ARMF28, 0}, // S_ARMF27
+	{SPR_ARMB, FF_FULLBRIGHT|11, 2, NULL, 0, 0, S_ARMF29, 0}, // S_ARMF28
+	{SPR_ARMB, FF_FULLBRIGHT|12, 2, NULL, 0, 0, S_ARMF30, 0}, // S_ARMF29
+	{SPR_ARMB, FF_FULLBRIGHT|13, 2, NULL, 0, 0, S_ARMF31, 0}, // S_ARMF30
+	{SPR_ARMB, FF_FULLBRIGHT|14, 2, NULL, 0, 0, S_ARMF32, 0}, // S_ARMF31
+	{SPR_ARMB, FF_FULLBRIGHT|15, 2, NULL, 0, 0, S_ARMF1 , 0}, // S_ARMF32
+
+	{SPR_ARMB, FF_FULLBRIGHT   , 2, NULL, 1, 0, S_ARMB2 , 0}, // S_ARMB1
+	{SPR_ARMB, FF_FULLBRIGHT| 1, 2, NULL, 1, 0, S_ARMB3 , 0}, // S_ARMB2
+	{SPR_ARMB, FF_FULLBRIGHT| 2, 2, NULL, 1, 0, S_ARMB4 , 0}, // S_ARMB3
+	{SPR_ARMB, FF_FULLBRIGHT| 3, 2, NULL, 1, 0, S_ARMB5 , 0}, // S_ARMB4
+	{SPR_ARMB, FF_FULLBRIGHT| 4, 2, NULL, 1, 0, S_ARMB6 , 0}, // S_ARMB5
+	{SPR_ARMB, FF_FULLBRIGHT| 5, 2, NULL, 1, 0, S_ARMB7 , 0}, // S_ARMB6
+	{SPR_ARMB, FF_FULLBRIGHT| 6, 2, NULL, 1, 0, S_ARMB8 , 0}, // S_ARMB7
+	{SPR_ARMB, FF_FULLBRIGHT| 7, 2, NULL, 1, 0, S_ARMB9 , 0}, // S_ARMB8
+	{SPR_ARMB, FF_FULLBRIGHT| 8, 2, NULL, 1, 0, S_ARMB10, 0}, // S_ARMB9
+	{SPR_ARMB, FF_FULLBRIGHT| 9, 2, NULL, 1, 0, S_ARMB11, 0}, // S_ARMB10
+	{SPR_ARMB, FF_FULLBRIGHT|10, 2, NULL, 1, 0, S_ARMB12, 0}, // S_ARMB11
+	{SPR_ARMB, FF_FULLBRIGHT|11, 2, NULL, 1, 0, S_ARMB13, 0}, // S_ARMB12
+	{SPR_ARMB, FF_FULLBRIGHT|12, 2, NULL, 1, 0, S_ARMB14, 0}, // S_ARMB13
+	{SPR_ARMB, FF_FULLBRIGHT|13, 2, NULL, 1, 0, S_ARMB15, 0}, // S_ARMB14
+	{SPR_ARMB, FF_FULLBRIGHT|14, 2, NULL, 1, 0, S_ARMB16, 0}, // S_ARMB15
+	{SPR_ARMB, FF_FULLBRIGHT|15, 2, NULL, 1, 0, S_ARMB17, 0}, // S_ARMB16
+	{SPR_ARMF, FF_FULLBRIGHT   , 2, NULL, 1, 0, S_ARMB18, 0}, // S_ARMB17
+	{SPR_ARMF, FF_FULLBRIGHT| 1, 2, NULL, 1, 0, S_ARMB19, 0}, // S_ARMB18
+	{SPR_ARMF, FF_FULLBRIGHT| 2, 2, NULL, 1, 0, S_ARMB20, 0}, // S_ARMB19
+	{SPR_ARMF, FF_FULLBRIGHT| 3, 2, NULL, 1, 0, S_ARMB21, 0}, // S_ARMB20
+	{SPR_ARMF, FF_FULLBRIGHT| 4, 2, NULL, 1, 0, S_ARMB22, 0}, // S_ARMB21
+	{SPR_ARMF, FF_FULLBRIGHT| 5, 2, NULL, 1, 0, S_ARMB23, 0}, // S_ARMB22
+	{SPR_ARMF, FF_FULLBRIGHT| 6, 2, NULL, 1, 0, S_ARMB24, 0}, // S_ARMB23
+	{SPR_ARMF, FF_FULLBRIGHT| 7, 2, NULL, 1, 0, S_ARMB25, 0}, // S_ARMB24
+	{SPR_ARMF, FF_FULLBRIGHT| 8, 2, NULL, 1, 0, S_ARMB26, 0}, // S_ARMB25
+	{SPR_ARMF, FF_FULLBRIGHT| 9, 2, NULL, 1, 0, S_ARMB27, 0}, // S_ARMB26
+	{SPR_ARMF, FF_FULLBRIGHT|10, 2, NULL, 1, 0, S_ARMB28, 0}, // S_ARMB27
+	{SPR_ARMF, FF_FULLBRIGHT|11, 2, NULL, 1, 0, S_ARMB29, 0}, // S_ARMB28
+	{SPR_ARMF, FF_FULLBRIGHT|12, 2, NULL, 1, 0, S_ARMB30, 0}, // S_ARMB29
+	{SPR_ARMF, FF_FULLBRIGHT|13, 2, NULL, 1, 0, S_ARMB31, 0}, // S_ARMB30
+	{SPR_ARMF, FF_FULLBRIGHT|14, 2, NULL, 1, 0, S_ARMB32, 0}, // S_ARMB31
+	{SPR_ARMF, FF_FULLBRIGHT|15, 2, NULL, 1, 0, S_ARMB1 , 0}, // S_ARMB32
+
+	{SPR_WIND, FF_TRANS70  , 2, NULL, 0, 0, S_WIND2, 0}, // S_WIND1
+	{SPR_WIND, FF_TRANS70|1, 2, NULL, 0, 0, S_WIND3, 0}, // S_WIND2
+	{SPR_WIND, FF_TRANS70|2, 2, NULL, 0, 0, S_WIND4, 0}, // S_WIND3
+	{SPR_WIND, FF_TRANS70|3, 2, NULL, 0, 0, S_WIND5, 0}, // S_WIND4
+	{SPR_WIND, FF_TRANS70|4, 2, NULL, 0, 0, S_WIND6, 0}, // S_WIND5
+	{SPR_WIND, FF_TRANS70|5, 2, NULL, 0, 0, S_WIND7, 0}, // S_WIND6
+	{SPR_WIND, FF_TRANS70|6, 2, NULL, 0, 0, S_WIND8, 0}, // S_WIND7
+	{SPR_WIND, FF_TRANS70|7, 2, NULL, 0, 0, S_WIND1, 0}, // S_WIND8
+
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40   , 2, NULL, 0, 0, S_MAGN2 , 0}, // S_MAGN1
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 1, 2, NULL, 0, 0, S_MAGN3 , 0}, // S_MAGN2
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 2, 2, NULL, 0, 0, S_MAGN4 , 0}, // S_MAGN3
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 3, 2, NULL, 0, 0, S_MAGN5 , 0}, // S_MAGN4
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 4, 2, NULL, 0, 0, S_MAGN6 , 0}, // S_MAGN5
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 5, 2, NULL, 0, 0, S_MAGN7 , 0}, // S_MAGN6
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 6, 2, NULL, 0, 0, S_MAGN8 , 0}, // S_MAGN7
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 7, 2, NULL, 0, 0, S_MAGN9 , 0}, // S_MAGN8
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 8, 2, NULL, 0, 0, S_MAGN10, 0}, // S_MAGN9
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40| 9, 2, NULL, 0, 0, S_MAGN11, 0}, // S_MAGN10
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40|10, 2, NULL, 0, 0, S_MAGN12, 0}, // S_MAGN11
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS40|11, 2, NULL, 0, 0, S_MAGN1 , 0}, // S_MAGN12
+
+	{SPR_MAGN, FF_FULLBRIGHT|FF_TRANS10|12, 2, NULL, 0, 0, S_MAGN1 , 0}, // S_MAGN13
+
+	{SPR_FORC, FF_TRANS50  , 3, NULL, 0, 0, S_FORC2 , 0}, // S_FORC1
+	{SPR_FORC, FF_TRANS50|1, 3, NULL, 0, 0, S_FORC3 , 0}, // S_FORC2
+	{SPR_FORC, FF_TRANS50|2, 3, NULL, 0, 0, S_FORC4 , 0}, // S_FORC3
+	{SPR_FORC, FF_TRANS50|3, 3, NULL, 0, 0, S_FORC5 , 0}, // S_FORC4
+	{SPR_FORC, FF_TRANS50|4, 3, NULL, 0, 0, S_FORC6 , 0}, // S_FORC5
+	{SPR_FORC, FF_TRANS50|5, 3, NULL, 0, 0, S_FORC7 , 0}, // S_FORC6
+	{SPR_FORC, FF_TRANS50|6, 3, NULL, 0, 0, S_FORC8 , 0}, // S_FORC7
+	{SPR_FORC, FF_TRANS50|7, 3, NULL, 0, 0, S_FORC9 , 0}, // S_FORC8
+	{SPR_FORC, FF_TRANS50|8, 3, NULL, 0, 0, S_FORC10, 0}, // S_FORC9
+	{SPR_FORC, FF_TRANS50|9, 3, NULL, 0, 0, S_FORC1 , 0}, // S_FORC10
+
+	{SPR_FORC, FF_TRANS50|10, 3, NULL, 0, 0, S_FORC12, 0}, // S_FORC11
+	{SPR_FORC, FF_TRANS50|11, 3, NULL, 0, 0, S_FORC13, 0}, // S_FORC12
+	{SPR_FORC, FF_TRANS50|12, 3, NULL, 0, 0, S_FORC14, 0}, // S_FORC13
+	{SPR_FORC, FF_TRANS50|13, 3, NULL, 0, 0, S_FORC15, 0}, // S_FORC14
+	{SPR_FORC, FF_TRANS50|14, 3, NULL, 0, 0, S_FORC16, 0}, // S_FORC15
+	{SPR_FORC, FF_TRANS50|15, 3, NULL, 0, 0, S_FORC17, 0}, // S_FORC16
+	{SPR_FORC, FF_TRANS50|16, 3, NULL, 0, 0, S_FORC18, 0}, // S_FORC17
+	{SPR_FORC, FF_TRANS50|17, 3, NULL, 0, 0, S_FORC19, 0}, // S_FORC18
+	{SPR_FORC, FF_TRANS50|18, 3, NULL, 0, 0, S_FORC20, 0}, // S_FORC19
+	{SPR_FORC, FF_TRANS50|19, 3, NULL, 0, 0, S_FORC11, 0}, // S_FORC20
+
+	{SPR_FORC, FF_TRANS50|20, -1, NULL, 0, 0, S_NULL, 0}, // S_FORC21
+
+	{SPR_ELEM, FF_TRANS50   , 4, NULL, 0, 0, S_ELEM2 , 0}, // S_ELEM1
+	{SPR_ELEM, FF_TRANS50| 1, 4, NULL, 0, 0, S_ELEM3 , 0}, // S_ELEM2
+	{SPR_ELEM, FF_TRANS50| 2, 4, NULL, 0, 0, S_ELEM4 , 0}, // S_ELEM3
+	{SPR_ELEM, FF_TRANS50| 3, 4, NULL, 0, 0, S_ELEM5 , 0}, // S_ELEM4
+	{SPR_ELEM, FF_TRANS50| 4, 4, NULL, 0, 0, S_ELEM6 , 0}, // S_ELEM5
+	{SPR_ELEM, FF_TRANS50| 5, 4, NULL, 0, 0, S_ELEM7 , 0}, // S_ELEM6
+	{SPR_ELEM, FF_TRANS50| 6, 4, NULL, 0, 0, S_ELEM8 , 0}, // S_ELEM7
+	{SPR_ELEM, FF_TRANS50| 7, 4, NULL, 0, 0, S_ELEM9 , 0}, // S_ELEM8
+	{SPR_ELEM, FF_TRANS50| 8, 4, NULL, 0, 0, S_ELEM10, 0}, // S_ELEM9
+	{SPR_ELEM, FF_TRANS50| 9, 4, NULL, 0, 0, S_ELEM11, 0}, // S_ELEM10
+	{SPR_ELEM, FF_TRANS50|10, 4, NULL, 0, 0, S_ELEM12, 0}, // S_ELEM11
+	{SPR_ELEM, FF_TRANS50|11, 4, NULL, 0, 0, S_ELEM1 , 0}, // S_ELEM12
+
+	{SPR_NULL,             0, 1, NULL, 0, 0, S_ELEM14, 0}, // S_ELEM13
+	{SPR_ELEM, FF_TRANS50|11, 1, NULL, 0, 0, S_ELEM1 , 0}, // S_ELEM14
+
+	{SPR_ELEM, FF_FULLBRIGHT|12, 3, NULL, 0, 0, S_ELEMF2 , 0}, // S_ELEMF1
+	{SPR_ELEM, FF_FULLBRIGHT|13, 3, NULL, 0, 0, S_ELEMF3 , 0}, // S_ELEMF2
+	{SPR_ELEM, FF_FULLBRIGHT|14, 3, NULL, 0, 0, S_ELEMF4 , 0}, // S_ELEMF3
+	{SPR_ELEM, FF_FULLBRIGHT|15, 3, NULL, 0, 0, S_ELEMF5 , 0}, // S_ELEMF4
+	{SPR_ELEM, FF_FULLBRIGHT|16, 3, NULL, 0, 0, S_ELEMF6 , 0}, // S_ELEMF5
+	{SPR_ELEM, FF_FULLBRIGHT|17, 3, NULL, 0, 0, S_ELEMF7 , 0}, // S_ELEMF6
+	{SPR_ELEM, FF_FULLBRIGHT|18, 3, NULL, 0, 0, S_ELEMF8 , 0}, // S_ELEMF7
+	{SPR_ELEM, FF_FULLBRIGHT|19, 3, NULL, 0, 0, S_ELEMF1 , 0}, // S_ELEMF8
+
+	{SPR_ELEM, FF_FULLBRIGHT|20, 1, NULL, 0, 0, S_ELEMF10, 0}, // S_ELEMF9
+	{SPR_NULL, 0,                1, NULL, 0, 0, S_ELEMF1 , 0}, // S_ELEMF10
+
+	{SPR_PITY, FF_TRANS30   , 2, NULL, 0, 0, S_PITY2, 0},  // S_PITY1
+	{SPR_PITY, FF_TRANS30| 1, 2, NULL, 0, 0, S_PITY3, 0},  // S_PITY2
+	{SPR_PITY, FF_TRANS30| 2, 2, NULL, 0, 0, S_PITY4, 0},  // S_PITY3
+	{SPR_PITY, FF_TRANS30| 3, 2, NULL, 0, 0, S_PITY5, 0},  // S_PITY4
+	{SPR_PITY, FF_TRANS30| 4, 2, NULL, 0, 0, S_PITY6, 0},  // S_PITY5
+	{SPR_PITY, FF_TRANS30| 5, 2, NULL, 0, 0, S_PITY7, 0},  // S_PITY6
+	{SPR_PITY, FF_TRANS30| 6, 2, NULL, 0, 0, S_PITY8, 0},  // S_PITY7
+	{SPR_PITY, FF_TRANS30| 7, 2, NULL, 0, 0, S_PITY9, 0},  // S_PITY8
+	{SPR_PITY, FF_TRANS30| 8, 2, NULL, 0, 0, S_PITY10, 0}, // S_PITY9
+	{SPR_PITY, FF_TRANS30| 9, 2, NULL, 0, 0, S_PITY11, 0}, // S_PITY10
+	{SPR_PITY, FF_TRANS30|10, 2, NULL, 0, 0, S_PITY12, 0}, // S_PITY11
+	{SPR_PITY, FF_TRANS30|11, 2, NULL, 0, 0, S_PITY1, 0},  // S_PITY12
+
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40  , 2, NULL, 0, 0, S_FIRS2, 0}, // S_FIRS1
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|1, 2, NULL, 0, 0, S_FIRS3, 0}, // S_FIRS2
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|2, 2, NULL, 0, 0, S_FIRS4, 0}, // S_FIRS3
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|3, 2, NULL, 0, 0, S_FIRS5, 0}, // S_FIRS4
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|4, 2, NULL, 0, 0, S_FIRS6, 0}, // S_FIRS5
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|5, 2, NULL, 0, 0, S_FIRS7, 0}, // S_FIRS6
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|6, 2, NULL, 0, 0, S_FIRS8, 0}, // S_FIRS7
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|7, 2, NULL, 0, 0, S_FIRS9, 0}, // S_FIRS8
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|8, 2, NULL, 0, 0, S_FIRS1, 0}, // S_FIRS9
+
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|18, 1, NULL, 0, 0, S_FIRS11, 0}, // S_FIRS10
+	{SPR_NULL, 0,                           1, NULL, 0, 0, S_FIRS1 , 0}, // S_FIRS11
+
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40| 9, 2, NULL, 0, 0, S_FIRSB2, 0}, // S_FIRSB1
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|10, 2, NULL, 0, 0, S_FIRSB3, 0}, // S_FIRSB2
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|11, 2, NULL, 0, 0, S_FIRSB4, 0}, // S_FIRSB3
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|12, 2, NULL, 0, 0, S_FIRSB5, 0}, // S_FIRSB4
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|13, 2, NULL, 0, 0, S_FIRSB6, 0}, // S_FIRSB5
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|14, 2, NULL, 0, 0, S_FIRSB7, 0}, // S_FIRSB6
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|15, 2, NULL, 0, 0, S_FIRSB8, 0}, // S_FIRSB7
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|16, 2, NULL, 0, 0, S_FIRSB9, 0}, // S_FIRSB8
+	{SPR_FIRS, FF_FULLBRIGHT|FF_TRANS40|17, 2, NULL, 0, 0, S_FIRSB1, 0}, // S_FIRSB9
+
+	{SPR_NULL, 0,                           2, NULL, 0, 0, S_FIRSB1 , 0}, // S_FIRSB10
+
+	{SPR_BUBS, FF_TRANS30  , 3, NULL, 0, 0, S_BUBS2, 0}, // S_BUBS1
+	{SPR_BUBS, FF_TRANS30|1, 3, NULL, 0, 0, S_BUBS3, 0}, // S_BUBS2
+	{SPR_BUBS, FF_TRANS30|2, 3, NULL, 0, 0, S_BUBS4, 0}, // S_BUBS3
+	{SPR_BUBS, FF_TRANS30|3, 3, NULL, 0, 0, S_BUBS5, 0}, // S_BUBS4
+	{SPR_BUBS, FF_TRANS30|4, 3, NULL, 0, 0, S_BUBS6, 0}, // S_BUBS5
+	{SPR_BUBS, FF_TRANS30|5, 3, NULL, 0, 0, S_BUBS7, 0}, // S_BUBS6
+	{SPR_BUBS, FF_TRANS30|6, 3, NULL, 0, 0, S_BUBS8, 0}, // S_BUBS7
+	{SPR_BUBS, FF_TRANS30|7, 3, NULL, 0, 0, S_BUBS9, 0}, // S_BUBS8
+	{SPR_BUBS, FF_TRANS30|8, 3, NULL, 0, 0, S_BUBS1, 0}, // S_BUBS9
+
+	{SPR_NULL, 0,   3, NULL, 0, 0, S_BUBS1, 0}, // S_BUBS10
+	{SPR_NULL, 0, 4*3, NULL, 0, 0, S_BUBS1, 0}, // S_BUBS11
+
+	{SPR_BUBS, FF_TRANS30| 9, 3, NULL, 0, 0, S_BUBSB2, 0}, // S_BUBSB1
+	{SPR_BUBS, FF_TRANS30|10, 3, NULL, 0, 0, S_BUBSB3, 0}, // S_BUBSB2
+	{SPR_BUBS, FF_TRANS30|11, 3, NULL, 0, 0, S_BUBSB4, 0}, // S_BUBSB3
+	{SPR_BUBS, FF_TRANS30|10, 3, NULL, 0, 0, S_BUBSB1, 0}, // S_BUBSB4
+
+	{SPR_BUBS, FF_TRANS30|12, 3, NULL, 0, 0, S_BUBSB3, 0}, // S_BUBSB5
+	{SPR_BUBS, FF_TRANS30|13, 3, NULL, 0, 0, S_BUBSB5, 0}, // S_BUBSB6
+
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20   ,   2, NULL, 0, 0, S_ZAPS2 , 0}, // S_ZAPS1
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 1,   2, NULL, 0, 0, S_ZAPS3 , 0}, // S_ZAPS2
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 2,   2, NULL, 0, 0, S_ZAPS4 , 0}, // S_ZAPS3
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 3,   2, NULL, 0, 0, S_ZAPS5 , 0}, // S_ZAPS4
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 4,   2, NULL, 0, 0, S_ZAPS6 , 0}, // S_ZAPS5
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 5,   2, NULL, 0, 0, S_ZAPS7 , 0}, // S_ZAPS6
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 6,   2, NULL, 0, 0, S_ZAPS8 , 0}, // S_ZAPS7
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 7,   2, NULL, 0, 0, S_ZAPS9 , 0}, // S_ZAPS8
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 8,   2, NULL, 0, 0, S_ZAPS10, 0}, // S_ZAPS9
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 9,   2, NULL, 0, 0, S_ZAPS11, 0}, // S_ZAPS10
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|10,   2, NULL, 0, 0, S_ZAPS12, 0}, // S_ZAPS11
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|11,   2, NULL, 0, 0, S_ZAPS13, 0}, // S_ZAPS12
+	{SPR_NULL,                           0, 9*2, NULL, 0, 0, S_ZAPS14, 0}, // S_ZAPS13
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 9,   2, NULL, 0, 0, S_ZAPS15, 0}, // S_ZAPS14
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|10,   2, NULL, 0, 0, S_ZAPS16, 0}, // S_ZAPS15
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20|11,   2, NULL, 0, 0, S_ZAPS1 , 0}, // S_ZAPS16
+
+	{SPR_NULL,                           0, 12*2, NULL, 0, 0, S_ZAPSB2 , 0}, // S_ZAPSB1
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 8,    2, NULL, 0, 0, S_ZAPSB3 , 0}, // S_ZAPSB2
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 7,    2, NULL, 0, 0, S_ZAPSB4 , 0}, // S_ZAPSB3
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 6,    2, NULL, 0, 0, S_ZAPSB5 , 0}, // S_ZAPSB4
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 5,    2, NULL, 0, 0, S_ZAPSB6 , 0}, // S_ZAPSB5
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 4,    2, NULL, 0, 0, S_ZAPSB7 , 0}, // S_ZAPSB6
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 3,    2, NULL, 0, 0, S_ZAPSB8 , 0}, // S_ZAPSB7
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 2,    2, NULL, 0, 0, S_ZAPSB9 , 0}, // S_ZAPSB8
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20| 1,    2, NULL, 0, 0, S_ZAPSB10, 0}, // S_ZAPSB9
+	{SPR_ZAPS, FF_FULLBRIGHT|FF_TRANS20   ,    2, NULL, 0, 0, S_ZAPSB11, 0}, // S_ZAPSB10
+	{SPR_NULL,                           0, 15*2, NULL, 0, 0, S_ZAPSB2 , 0}, // S_ZAPSB11
 
 	// Thunder spark
-	{SPR_SSPK, FF_ANIMATE|FF_FULLBRIGHT, -1, {NULL}, 1, 2, S_NULL, 0},   // S_THUNDERCOIN_SPARK
+	{SPR_SSPK, FF_ANIMATE|FF_FULLBRIGHT, -1, NULL, 1, 2, S_NULL, 0},   // S_THUNDERCOIN_SPARK
 
 	// Invincibility Sparkles
-	{SPR_IVSP, FF_ANIMATE|FF_FULLBRIGHT, 32, {NULL}, 31, 1, S_NULL, 0},   // S_IVSP
+	{SPR_IVSP, FF_ANIMATE|FF_FULLBRIGHT, 32, NULL, 31, 1, S_NULL, 0},   // S_IVSP
 
 	// Super Sonic Spark
-	{SPR_SSPK,   FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SSPK2, 0}, // S_SSPK1
-	{SPR_SSPK, 1|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SSPK3, 0}, // S_SSPK2
-	{SPR_SSPK, 2|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SSPK4, 0}, // S_SSPK3
-	{SPR_SSPK, 1|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SSPK5, 0}, // S_SSPK4
-	{SPR_SSPK,   FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0},  // S_SSPK5
+	{SPR_SSPK,   FF_FULLBRIGHT, 2, NULL, 0, 0, S_SSPK2, 0}, // S_SSPK1
+	{SPR_SSPK, 1|FF_FULLBRIGHT, 2, NULL, 0, 0, S_SSPK3, 0}, // S_SSPK2
+	{SPR_SSPK, 2|FF_FULLBRIGHT, 2, NULL, 0, 0, S_SSPK4, 0}, // S_SSPK3
+	{SPR_SSPK, 1|FF_FULLBRIGHT, 2, NULL, 0, 0, S_SSPK5, 0}, // S_SSPK4
+	{SPR_SSPK,   FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0},  // S_SSPK5
 
 	// Flicky-sized bubble
-	{SPR_FBUB, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FLICKY_BUBBLE
+	{SPR_FBUB, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_FLICKY_BUBBLE
 
 	// Bluebird
-	{SPR_FL01, 0, 2, {A_FlickyCheck}, S_FLICKY_01_FLAP1, S_FLICKY_01_FLAP1, S_FLICKY_01_OUT, 0},   // S_FLICKY_01_OUT
-	{SPR_FL01, 1, 3, {A_FlickyFly},          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP2, 0}, // S_FLICKY_01_FLAP1
-	{SPR_FL01, 2, 3, {A_FlickyFly},          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP3, 0}, // S_FLICKY_01_FLAP2
-	{SPR_FL01, 3, 3, {A_FlickyFly},          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP1, 0}, // S_FLICKY_01_FLAP3
-	{SPR_FL01, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL, 0},                                         // S_FLICKY_01_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_01, 384*FRACUNIT, S_FLICKY_01_CENTER, 0},        // S_FLICKY_01_CENTER
+	{SPR_FL01, 0, 2, A_FlickyCheck, S_FLICKY_01_FLAP1, S_FLICKY_01_FLAP1, S_FLICKY_01_OUT, 0},   // S_FLICKY_01_OUT
+	{SPR_FL01, 1, 3, A_FlickyFly,          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP2, 0}, // S_FLICKY_01_FLAP1
+	{SPR_FL01, 2, 3, A_FlickyFly,          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP3, 0}, // S_FLICKY_01_FLAP2
+	{SPR_FL01, 3, 3, A_FlickyFly,          4*FRACUNIT,       16*FRACUNIT, S_FLICKY_01_FLAP1, 0}, // S_FLICKY_01_FLAP3
+	{SPR_FL01, FF_ANIMATE|1, -1, NULL, 2, 3, S_NULL, 0},                                         // S_FLICKY_01_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_01, 384*FRACUNIT, S_FLICKY_01_CENTER, 0},        // S_FLICKY_01_CENTER
 
 	// Rabbit
-	{SPR_FL02, 0, 2, {A_FlickyCheck}, S_FLICKY_02_AIM,                0, S_FLICKY_02_OUT, 0},  // S_FLICKY_02_OUT
-	{SPR_FL02, 1, 1, {A_FlickyAim},             ANG30,      32*FRACUNIT, S_FLICKY_02_HOP, 0},  // S_FLICKY_02_AIM
-	{SPR_FL02, 1, 1, {A_FlickyHop},        6*FRACUNIT,       4*FRACUNIT, S_FLICKY_02_UP, 0},   // S_FLICKY_02_HOP
-	{SPR_FL02, 2, 2, {A_FlickyCheck}, S_FLICKY_02_AIM, S_FLICKY_02_DOWN, S_FLICKY_02_UP, 0},   // S_FLICKY_02_UP
-	{SPR_FL02, 3, 2, {A_FlickyCheck}, S_FLICKY_02_AIM,                0, S_FLICKY_02_DOWN, 0}, // S_FLICKY_02_DOWN
-	{SPR_FL02, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_02_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_02, 384*FRACUNIT, S_FLICKY_02_CENTER, 0},        // S_FLICKY_02_CENTER
+	{SPR_FL02, 0, 2, A_FlickyCheck, S_FLICKY_02_AIM,                0, S_FLICKY_02_OUT, 0},  // S_FLICKY_02_OUT
+	{SPR_FL02, 1, 1, A_FlickyAim,             ANG30,      32*FRACUNIT, S_FLICKY_02_HOP, 0},  // S_FLICKY_02_AIM
+	{SPR_FL02, 1, 1, A_FlickyHop,        6*FRACUNIT,       4*FRACUNIT, S_FLICKY_02_UP, 0},   // S_FLICKY_02_HOP
+	{SPR_FL02, 2, 2, A_FlickyCheck, S_FLICKY_02_AIM, S_FLICKY_02_DOWN, S_FLICKY_02_UP, 0},   // S_FLICKY_02_UP
+	{SPR_FL02, 3, 2, A_FlickyCheck, S_FLICKY_02_AIM,                0, S_FLICKY_02_DOWN, 0}, // S_FLICKY_02_DOWN
+	{SPR_FL02, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_02_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_02, 384*FRACUNIT, S_FLICKY_02_CENTER, 0},        // S_FLICKY_02_CENTER
 
 	// Chicken
-	{SPR_FL03, 0, 2, {A_FlickyCheck},   S_FLICKY_03_AIM, S_FLICKY_03_FLAP1, S_FLICKY_03_OUT, 0},   // S_FLICKY_03_OUT
-	{SPR_FL03, 1, 1, {A_FlickyAim},            ANGLE_45,       32*FRACUNIT, S_FLICKY_03_HOP, 0},   // S_FLICKY_03_AIM
-	{SPR_FL03, 1, 1, {A_FlickyHop},          7*FRACUNIT,        2*FRACUNIT, S_FLICKY_03_UP, 0},    // S_FLICKY_03_HOP
-	{SPR_FL03, 2, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP, S_FLICKY_03_FLAP1, S_FLICKY_03_UP, 0},    // S_FLICKY_03_UP
-	{SPR_FL03, 3, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP,                 0, S_FLICKY_03_FLAP2, 0}, // S_FLICKY_03_FLAP1
-	{SPR_FL03, 4, 2, {A_FlickyFlutter}, S_FLICKY_03_HOP,                 0, S_FLICKY_03_FLAP1, 0}, // S_FLICKY_03_FLAP2
-	{SPR_FL03, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_03_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_03, 384*FRACUNIT, S_FLICKY_03_CENTER, 0},        // S_FLICKY_03_CENTER
+	{SPR_FL03, 0, 2, A_FlickyCheck,   S_FLICKY_03_AIM, S_FLICKY_03_FLAP1, S_FLICKY_03_OUT, 0},   // S_FLICKY_03_OUT
+	{SPR_FL03, 1, 1, A_FlickyAim,            ANGLE_45,       32*FRACUNIT, S_FLICKY_03_HOP, 0},   // S_FLICKY_03_AIM
+	{SPR_FL03, 1, 1, A_FlickyHop,          7*FRACUNIT,        2*FRACUNIT, S_FLICKY_03_UP, 0},    // S_FLICKY_03_HOP
+	{SPR_FL03, 2, 2, A_FlickyFlutter, S_FLICKY_03_HOP, S_FLICKY_03_FLAP1, S_FLICKY_03_UP, 0},    // S_FLICKY_03_UP
+	{SPR_FL03, 3, 2, A_FlickyFlutter, S_FLICKY_03_HOP,                 0, S_FLICKY_03_FLAP2, 0}, // S_FLICKY_03_FLAP1
+	{SPR_FL03, 4, 2, A_FlickyFlutter, S_FLICKY_03_HOP,                 0, S_FLICKY_03_FLAP1, 0}, // S_FLICKY_03_FLAP2
+	{SPR_FL03, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_03_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_03, 384*FRACUNIT, S_FLICKY_03_CENTER, 0},        // S_FLICKY_03_CENTER
 
 	// Seal
-	{SPR_FL04, 0, 2, {A_FlickyCheck}, S_FLICKY_04_AIM,                 0, S_FLICKY_04_OUT, 0},   // S_FLICKY_04_OUT
-	{SPR_FL04, 1, 1, {A_FlickyAim},             ANG30,       32*FRACUNIT, S_FLICKY_04_HOP, 0},   // S_FLICKY_04_AIM
-	{SPR_FL04, 1, 1, {A_FlickyHop},        3*FRACUNIT,        2*FRACUNIT, S_FLICKY_04_UP, 0},    // S_FLICKY_04_HOP
-	{SPR_FL04, 2, 4, {A_FlickyCheck}, S_FLICKY_04_AIM,  S_FLICKY_04_DOWN, S_FLICKY_04_UP, 0},    // S_FLICKY_04_UP
-	{SPR_FL04, 3, 4, {A_FlickyCheck}, S_FLICKY_04_AIM,                 0, S_FLICKY_04_DOWN, 0},  // S_FLICKY_04_DOWN
-	{SPR_FL04, 3, 4, {A_FlickyFly},        2*FRACUNIT,       48*FRACUNIT, S_FLICKY_04_SWIM2, 0}, // S_FLICKY_04_SWIM1
-	{SPR_FL04, 4, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM3, 0}, // S_FLICKY_04_SWIM2
-	{SPR_FL04, 3, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM4, 0}, // S_FLICKY_04_SWIM3
-	{SPR_FL04, 5, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM1, 0}, // S_FLICKY_04_SWIM4
-	{SPR_FL04, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_04_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_04, 384*FRACUNIT, S_FLICKY_04_CENTER, 0},        // S_FLICKY_04_CENTER
+	{SPR_FL04, 0, 2, A_FlickyCheck, S_FLICKY_04_AIM,                 0, S_FLICKY_04_OUT, 0},   // S_FLICKY_04_OUT
+	{SPR_FL04, 1, 1, A_FlickyAim,             ANG30,       32*FRACUNIT, S_FLICKY_04_HOP, 0},   // S_FLICKY_04_AIM
+	{SPR_FL04, 1, 1, A_FlickyHop,        3*FRACUNIT,        2*FRACUNIT, S_FLICKY_04_UP, 0},    // S_FLICKY_04_HOP
+	{SPR_FL04, 2, 4, A_FlickyCheck, S_FLICKY_04_AIM,  S_FLICKY_04_DOWN, S_FLICKY_04_UP, 0},    // S_FLICKY_04_UP
+	{SPR_FL04, 3, 4, A_FlickyCheck, S_FLICKY_04_AIM,                 0, S_FLICKY_04_DOWN, 0},  // S_FLICKY_04_DOWN
+	{SPR_FL04, 3, 4, A_FlickyFly,        2*FRACUNIT,       48*FRACUNIT, S_FLICKY_04_SWIM2, 0}, // S_FLICKY_04_SWIM1
+	{SPR_FL04, 4, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM3, 0}, // S_FLICKY_04_SWIM2
+	{SPR_FL04, 3, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM4, 0}, // S_FLICKY_04_SWIM3
+	{SPR_FL04, 5, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_04_SWIM1, S_FLICKY_04_SWIM1, 0}, // S_FLICKY_04_SWIM4
+	{SPR_FL04, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_04_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_04, 384*FRACUNIT, S_FLICKY_04_CENTER, 0},        // S_FLICKY_04_CENTER
 
 	// Pig
-	{SPR_FL05, 0, 2, {A_FlickyCheck}, S_FLICKY_05_AIM,                0, S_FLICKY_05_OUT, 0},  // S_FLICKY_05_OUT
-	{SPR_FL05, 1, 1, {A_FlickyAim},             ANG20,      32*FRACUNIT, S_FLICKY_05_HOP, 0},  // S_FLICKY_05_AIM
-	{SPR_FL05, 1, 1, {A_FlickyHop},        4*FRACUNIT,       3*FRACUNIT, S_FLICKY_05_UP, 0},   // S_FLICKY_05_HOP
-	{SPR_FL05, 2, 2, {A_FlickyCheck}, S_FLICKY_05_AIM, S_FLICKY_05_DOWN, S_FLICKY_05_UP, 0},   // S_FLICKY_05_UP
-	{SPR_FL05, 3, 2, {A_FlickyCheck}, S_FLICKY_05_AIM,                0, S_FLICKY_05_DOWN, 0}, // S_FLICKY_05_DOWN
-	{SPR_FL05, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_05_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_05, 384*FRACUNIT, S_FLICKY_05_CENTER, 0},        // S_FLICKY_05_CENTER
+	{SPR_FL05, 0, 2, A_FlickyCheck, S_FLICKY_05_AIM,                0, S_FLICKY_05_OUT, 0},  // S_FLICKY_05_OUT
+	{SPR_FL05, 1, 1, A_FlickyAim,             ANG20,      32*FRACUNIT, S_FLICKY_05_HOP, 0},  // S_FLICKY_05_AIM
+	{SPR_FL05, 1, 1, A_FlickyHop,        4*FRACUNIT,       3*FRACUNIT, S_FLICKY_05_UP, 0},   // S_FLICKY_05_HOP
+	{SPR_FL05, 2, 2, A_FlickyCheck, S_FLICKY_05_AIM, S_FLICKY_05_DOWN, S_FLICKY_05_UP, 0},   // S_FLICKY_05_UP
+	{SPR_FL05, 3, 2, A_FlickyCheck, S_FLICKY_05_AIM,                0, S_FLICKY_05_DOWN, 0}, // S_FLICKY_05_DOWN
+	{SPR_FL05, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_05_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_05, 384*FRACUNIT, S_FLICKY_05_CENTER, 0},        // S_FLICKY_05_CENTER
 
 	// Chipmunk
-	{SPR_FL06, 0, 2, {A_FlickyCheck}, S_FLICKY_06_AIM,                0, S_FLICKY_06_OUT, 0},  // S_FLICKY_06_OUT
-	{SPR_FL06, 1, 1, {A_FlickyAim},          ANGLE_90,      32*FRACUNIT, S_FLICKY_06_HOP, 0},  // S_FLICKY_06_AIM
-	{SPR_FL06, 1, 1, {A_FlickyHop},        5*FRACUNIT,       6*FRACUNIT, S_FLICKY_06_UP, 0},   // S_FLICKY_06_HOP
-	{SPR_FL06, 2, 2, {A_FlickyCheck}, S_FLICKY_06_AIM, S_FLICKY_06_DOWN, S_FLICKY_06_UP, 0},   // S_FLICKY_06_UP
-	{SPR_FL06, 3, 2, {A_FlickyCheck}, S_FLICKY_06_AIM,                0, S_FLICKY_06_DOWN, 0}, // S_FLICKY_06_DOWN
-	{SPR_FL06, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_06_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_06, 384*FRACUNIT, S_FLICKY_06_CENTER, 0},        // S_FLICKY_06_CENTER
+	{SPR_FL06, 0, 2, A_FlickyCheck, S_FLICKY_06_AIM,                0, S_FLICKY_06_OUT, 0},  // S_FLICKY_06_OUT
+	{SPR_FL06, 1, 1, A_FlickyAim,          ANGLE_90,      32*FRACUNIT, S_FLICKY_06_HOP, 0},  // S_FLICKY_06_AIM
+	{SPR_FL06, 1, 1, A_FlickyHop,        5*FRACUNIT,       6*FRACUNIT, S_FLICKY_06_UP, 0},   // S_FLICKY_06_HOP
+	{SPR_FL06, 2, 2, A_FlickyCheck, S_FLICKY_06_AIM, S_FLICKY_06_DOWN, S_FLICKY_06_UP, 0},   // S_FLICKY_06_UP
+	{SPR_FL06, 3, 2, A_FlickyCheck, S_FLICKY_06_AIM,                0, S_FLICKY_06_DOWN, 0}, // S_FLICKY_06_DOWN
+	{SPR_FL06, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_06_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_06, 384*FRACUNIT, S_FLICKY_06_CENTER, 0},        // S_FLICKY_06_CENTER
 
 	// Penguin
-	{SPR_FL07, 0, 2, {A_FlickyCheck}, S_FLICKY_07_AIML,                 0, S_FLICKY_07_OUT, 0},   // S_FLICKY_07_OUT
-	{SPR_FL07, 1, 1, {A_FlickyAim},              ANG30,       32*FRACUNIT, S_FLICKY_07_HOPL, 0},  // S_FLICKY_07_AIML
-	{SPR_FL07, 1, 1, {A_FlickyHop},         4*FRACUNIT,        2*FRACUNIT, S_FLICKY_07_UPL, 0},   // S_FLICKY_07_HOPL
-	{SPR_FL07, 2, 4, {A_FlickyCheck}, S_FLICKY_07_AIMR, S_FLICKY_07_DOWNL, S_FLICKY_07_UPL, 0},   // S_FLICKY_07_UPL
-	{SPR_FL07, 1, 4, {A_FlickyCheck}, S_FLICKY_07_AIMR,                 0, S_FLICKY_07_DOWNL, 0}, // S_FLICKY_07_DOWNL
-	{SPR_FL07, 1, 1, {A_FlickyAim},              ANG30,       32*FRACUNIT, S_FLICKY_07_HOPR, 0},  // S_FLICKY_07_AIMR
-	{SPR_FL07, 1, 1, {A_FlickyHop},         4*FRACUNIT,        2*FRACUNIT, S_FLICKY_07_UPR, 0},   // S_FLICKY_07_HOPR
-	{SPR_FL07, 3, 4, {A_FlickyCheck}, S_FLICKY_07_AIML, S_FLICKY_07_DOWNR, S_FLICKY_07_UPR, 0},   // S_FLICKY_07_UPR
-	{SPR_FL07, 1, 4, {A_FlickyCheck}, S_FLICKY_07_AIML,                 0, S_FLICKY_07_DOWNR, 0}, // S_FLICKY_07_DOWNR
-	{SPR_FL07, 4, 4, {A_FlickyFly},         3*FRACUNIT,       72*FRACUNIT, S_FLICKY_07_SWIM2, 0}, // S_FLICKY_07_SWIM1
-	{SPR_FL07, 5, 4, {A_FlickyCoast},         FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3, 0}, // S_FLICKY_07_SWIM2
-	{SPR_FL07, 6, 4, {A_FlickyCoast},       2*FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3, 0}, // S_FLICKY_07_SWIM3
-	{SPR_FL07, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_07_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_07, 384*FRACUNIT, S_FLICKY_07_CENTER, 0},        // S_FLICKY_07_CENTER
+	{SPR_FL07, 0, 2, A_FlickyCheck, S_FLICKY_07_AIML,                 0, S_FLICKY_07_OUT, 0},   // S_FLICKY_07_OUT
+	{SPR_FL07, 1, 1, A_FlickyAim,              ANG30,       32*FRACUNIT, S_FLICKY_07_HOPL, 0},  // S_FLICKY_07_AIML
+	{SPR_FL07, 1, 1, A_FlickyHop,         4*FRACUNIT,        2*FRACUNIT, S_FLICKY_07_UPL, 0},   // S_FLICKY_07_HOPL
+	{SPR_FL07, 2, 4, A_FlickyCheck, S_FLICKY_07_AIMR, S_FLICKY_07_DOWNL, S_FLICKY_07_UPL, 0},   // S_FLICKY_07_UPL
+	{SPR_FL07, 1, 4, A_FlickyCheck, S_FLICKY_07_AIMR,                 0, S_FLICKY_07_DOWNL, 0}, // S_FLICKY_07_DOWNL
+	{SPR_FL07, 1, 1, A_FlickyAim,              ANG30,       32*FRACUNIT, S_FLICKY_07_HOPR, 0},  // S_FLICKY_07_AIMR
+	{SPR_FL07, 1, 1, A_FlickyHop,         4*FRACUNIT,        2*FRACUNIT, S_FLICKY_07_UPR, 0},   // S_FLICKY_07_HOPR
+	{SPR_FL07, 3, 4, A_FlickyCheck, S_FLICKY_07_AIML, S_FLICKY_07_DOWNR, S_FLICKY_07_UPR, 0},   // S_FLICKY_07_UPR
+	{SPR_FL07, 1, 4, A_FlickyCheck, S_FLICKY_07_AIML,                 0, S_FLICKY_07_DOWNR, 0}, // S_FLICKY_07_DOWNR
+	{SPR_FL07, 4, 4, A_FlickyFly,         3*FRACUNIT,       72*FRACUNIT, S_FLICKY_07_SWIM2, 0}, // S_FLICKY_07_SWIM1
+	{SPR_FL07, 5, 4, A_FlickyCoast,         FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3, 0}, // S_FLICKY_07_SWIM2
+	{SPR_FL07, 6, 4, A_FlickyCoast,       2*FRACUNIT, S_FLICKY_07_SWIM1, S_FLICKY_07_SWIM3, 0}, // S_FLICKY_07_SWIM3
+	{SPR_FL07, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_07_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_07, 384*FRACUNIT, S_FLICKY_07_CENTER, 0},        // S_FLICKY_07_CENTER
 
 	// Fish
-	{SPR_FL08, 0, 2, {A_FlickyCheck}, S_FLICKY_08_AIM,                 0, S_FLICKY_08_OUT, 0},   // S_FLICKY_08_OUT
-	{SPR_FL08, 2, 1, {A_FlickyAim},             ANG30,       32*FRACUNIT, S_FLICKY_08_HOP, 0},   // S_FLICKY_08_AIM
-	{SPR_FL08, 2, 1, {A_FlickyFlounder},   2*FRACUNIT,        1*FRACUNIT, S_FLICKY_08_FLAP1, 0}, // S_FLICKY_08_HOP
-	{SPR_FL08, 0, 4, {A_FlickyCheck}, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP2, 0}, // S_FLICKY_08_FLAP1
-	{SPR_FL08, 1, 4, {A_FlickyCheck}, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP3, 0}, // S_FLICKY_08_FLAP2
-	{SPR_FL08, 0, 4, {A_FlickyCheck}, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP4, 0}, // S_FLICKY_08_FLAP3
-	{SPR_FL08, 2, 4, {A_FlickyCheck}, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP1, 0}, // S_FLICKY_08_FLAP4
-	{SPR_FL08, 0, 4, {A_FlickyFly},        3*FRACUNIT,       64*FRACUNIT, S_FLICKY_08_SWIM2, 0}, // S_FLICKY_08_SWIM1
-	{SPR_FL08, 1, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM3, 0}, // S_FLICKY_08_SWIM2
-	{SPR_FL08, 0, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4, 0}, // S_FLICKY_08_SWIM3
-	{SPR_FL08, 2, 4, {A_FlickyCoast},        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4, 0}, // S_FLICKY_08_SWIM4
-	{SPR_FL08, FF_ANIMATE, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_08_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_08, 384*FRACUNIT, S_FLICKY_08_CENTER, 0},        // S_FLICKY_08_CENTER
+	{SPR_FL08, 0, 2, A_FlickyCheck, S_FLICKY_08_AIM,                 0, S_FLICKY_08_OUT, 0},   // S_FLICKY_08_OUT
+	{SPR_FL08, 2, 1, A_FlickyAim,             ANG30,       32*FRACUNIT, S_FLICKY_08_HOP, 0},   // S_FLICKY_08_AIM
+	{SPR_FL08, 2, 1, A_FlickyFlounder,   2*FRACUNIT,        1*FRACUNIT, S_FLICKY_08_FLAP1, 0}, // S_FLICKY_08_HOP
+	{SPR_FL08, 0, 4, A_FlickyCheck, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP2, 0}, // S_FLICKY_08_FLAP1
+	{SPR_FL08, 1, 4, A_FlickyCheck, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP3, 0}, // S_FLICKY_08_FLAP2
+	{SPR_FL08, 0, 4, A_FlickyCheck, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP4, 0}, // S_FLICKY_08_FLAP3
+	{SPR_FL08, 2, 4, A_FlickyCheck, S_FLICKY_08_AIM,                 0, S_FLICKY_08_FLAP1, 0}, // S_FLICKY_08_FLAP4
+	{SPR_FL08, 0, 4, A_FlickyFly,        3*FRACUNIT,       64*FRACUNIT, S_FLICKY_08_SWIM2, 0}, // S_FLICKY_08_SWIM1
+	{SPR_FL08, 1, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM3, 0}, // S_FLICKY_08_SWIM2
+	{SPR_FL08, 0, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4, 0}, // S_FLICKY_08_SWIM3
+	{SPR_FL08, 2, 4, A_FlickyCoast,        FRACUNIT, S_FLICKY_08_SWIM1, S_FLICKY_08_SWIM4, 0}, // S_FLICKY_08_SWIM4
+	{SPR_FL08, FF_ANIMATE, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_08_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_08, 384*FRACUNIT, S_FLICKY_08_CENTER, 0},        // S_FLICKY_08_CENTER
 
 	// Ram
-	{SPR_FL09, 0, 2, {A_FlickyCheck}, S_FLICKY_09_AIM,                0, S_FLICKY_09_OUT, 0},  // S_FLICKY_09_OUT
-	{SPR_FL09, 1, 1, {A_FlickyAim},             ANG30,      32*FRACUNIT, S_FLICKY_09_HOP, 0},  // S_FLICKY_09_AIM
-	{SPR_FL09, 1, 1, {A_FlickyHop},        7*FRACUNIT,       2*FRACUNIT, S_FLICKY_09_UP, 0},   // S_FLICKY_09_HOP
-	{SPR_FL09, 2, 2, {A_FlickyCheck}, S_FLICKY_09_AIM, S_FLICKY_09_DOWN, S_FLICKY_09_UP, 0},   // S_FLICKY_09_UP
-	{SPR_FL09, 3, 2, {A_FlickyCheck}, S_FLICKY_09_AIM,                0, S_FLICKY_09_DOWN, 0}, // S_FLICKY_09_DOWN
-	{SPR_FL09, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_09_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_09, 384*FRACUNIT, S_FLICKY_09_CENTER, 0},        // S_FLICKY_09_CENTER
+	{SPR_FL09, 0, 2, A_FlickyCheck, S_FLICKY_09_AIM,                0, S_FLICKY_09_OUT, 0},  // S_FLICKY_09_OUT
+	{SPR_FL09, 1, 1, A_FlickyAim,             ANG30,      32*FRACUNIT, S_FLICKY_09_HOP, 0},  // S_FLICKY_09_AIM
+	{SPR_FL09, 1, 1, A_FlickyHop,        7*FRACUNIT,       2*FRACUNIT, S_FLICKY_09_UP, 0},   // S_FLICKY_09_HOP
+	{SPR_FL09, 2, 2, A_FlickyCheck, S_FLICKY_09_AIM, S_FLICKY_09_DOWN, S_FLICKY_09_UP, 0},   // S_FLICKY_09_UP
+	{SPR_FL09, 3, 2, A_FlickyCheck, S_FLICKY_09_AIM,                0, S_FLICKY_09_DOWN, 0}, // S_FLICKY_09_DOWN
+	{SPR_FL09, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_09_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_09, 384*FRACUNIT, S_FLICKY_09_CENTER, 0},        // S_FLICKY_09_CENTER
 
 	// Puffin
-	{SPR_FL10, 0, 2, {A_FlickyCheck}, S_FLICKY_10_FLAP1, S_FLICKY_10_FLAP1, S_FLICKY_10_OUT, 0},   // S_FLICKY_10_OUT
-	{SPR_FL10, 1, 3, {A_FlickySoar},         4*FRACUNIT,       16*FRACUNIT, S_FLICKY_10_FLAP2, 0}, // S_FLICKY_10_FLAP1
-	{SPR_FL10, 2, 3, {A_FlickySoar},         4*FRACUNIT,       16*FRACUNIT, S_FLICKY_10_FLAP1, 0}, // S_FLICKY_10_FLAP2
-	{SPR_FL10, FF_ANIMATE|1, -1, {NULL}, 1, 3, S_NULL, 0}, // S_FLICKY_10_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_10, 384*FRACUNIT, S_FLICKY_10_CENTER, 0},        // S_FLICKY_10_CENTER
+	{SPR_FL10, 0, 2, A_FlickyCheck, S_FLICKY_10_FLAP1, S_FLICKY_10_FLAP1, S_FLICKY_10_OUT, 0},   // S_FLICKY_10_OUT
+	{SPR_FL10, 1, 3, A_FlickySoar,         4*FRACUNIT,       16*FRACUNIT, S_FLICKY_10_FLAP2, 0}, // S_FLICKY_10_FLAP1
+	{SPR_FL10, 2, 3, A_FlickySoar,         4*FRACUNIT,       16*FRACUNIT, S_FLICKY_10_FLAP1, 0}, // S_FLICKY_10_FLAP2
+	{SPR_FL10, FF_ANIMATE|1, -1, NULL, 1, 3, S_NULL, 0}, // S_FLICKY_10_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_10, 384*FRACUNIT, S_FLICKY_10_CENTER, 0},        // S_FLICKY_10_CENTER
 
 	// Cow
-	{SPR_FL11, 0, 2, {A_FlickyCheck}, S_FLICKY_11_AIM,           0, S_FLICKY_11_OUT, 0},  // S_FLICKY_11_OUT
-	{SPR_FL11, 1, 1, {A_FlickyAim},          ANGLE_90, 64*FRACUNIT, S_FLICKY_11_RUN1, 0}, // S_FLICKY_11_AIM
-	{SPR_FL11, 1, 3, {A_FlickyHop},        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_RUN2, 0}, // S_FLICKY_11_RUN1
-	{SPR_FL11, 2, 4, {A_FlickyHop},        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_RUN3, 0}, // S_FLICKY_11_RUN2
-	{SPR_FL11, 3, 4, {A_FlickyHop},        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_AIM, 0},  // S_FLICKY_11_RUN3
-	{SPR_FL11, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_11_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_11, 384*FRACUNIT, S_FLICKY_11_CENTER, 0},        // S_FLICKY_11_CENTER
+	{SPR_FL11, 0, 2, A_FlickyCheck, S_FLICKY_11_AIM,           0, S_FLICKY_11_OUT, 0},  // S_FLICKY_11_OUT
+	{SPR_FL11, 1, 1, A_FlickyAim,          ANGLE_90, 64*FRACUNIT, S_FLICKY_11_RUN1, 0}, // S_FLICKY_11_AIM
+	{SPR_FL11, 1, 3, A_FlickyHop,        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_RUN2, 0}, // S_FLICKY_11_RUN1
+	{SPR_FL11, 2, 4, A_FlickyHop,        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_RUN3, 0}, // S_FLICKY_11_RUN2
+	{SPR_FL11, 3, 4, A_FlickyHop,        FRACUNIT/2,  2*FRACUNIT, S_FLICKY_11_AIM, 0},  // S_FLICKY_11_RUN3
+	{SPR_FL11, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_11_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_11, 384*FRACUNIT, S_FLICKY_11_CENTER, 0},        // S_FLICKY_11_CENTER
 
 	// Rat
-	{SPR_FL12, 0, 2, {A_FlickyCheck}, S_FLICKY_12_AIM,           0, S_FLICKY_12_OUT, 0},  // S_FLICKY_12_OUT
-	{SPR_FL12, 1, 1, {A_FlickyAim},          ANGLE_90, 32*FRACUNIT, S_FLICKY_12_RUN1, 0}, // S_FLICKY_12_AIM
-	{SPR_FL12, 1, 2, {A_FlickyHop},                 1, 12*FRACUNIT, S_FLICKY_12_RUN2, 0}, // S_FLICKY_12_RUN1
-	{SPR_FL12, 2, 3, {A_FlickyHop},                 1, 12*FRACUNIT, S_FLICKY_12_RUN3, 0}, // S_FLICKY_12_RUN2
-	{SPR_FL12, 3, 3, {A_FlickyHop},                 1, 12*FRACUNIT, S_FLICKY_12_AIM, 0},  // S_FLICKY_12_RUN3
-	{SPR_FL12, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_12_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_12, 384*FRACUNIT, S_FLICKY_12_CENTER, 0},        // S_FLICKY_12_CENTER
+	{SPR_FL12, 0, 2, A_FlickyCheck, S_FLICKY_12_AIM,           0, S_FLICKY_12_OUT, 0},  // S_FLICKY_12_OUT
+	{SPR_FL12, 1, 1, A_FlickyAim,          ANGLE_90, 32*FRACUNIT, S_FLICKY_12_RUN1, 0}, // S_FLICKY_12_AIM
+	{SPR_FL12, 1, 2, A_FlickyHop,                 1, 12*FRACUNIT, S_FLICKY_12_RUN2, 0}, // S_FLICKY_12_RUN1
+	{SPR_FL12, 2, 3, A_FlickyHop,                 1, 12*FRACUNIT, S_FLICKY_12_RUN3, 0}, // S_FLICKY_12_RUN2
+	{SPR_FL12, 3, 3, A_FlickyHop,                 1, 12*FRACUNIT, S_FLICKY_12_AIM, 0},  // S_FLICKY_12_RUN3
+	{SPR_FL12, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_12_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_12, 384*FRACUNIT, S_FLICKY_12_CENTER, 0},        // S_FLICKY_12_CENTER
 
 	// Bear
-	{SPR_FL13, 0, 2, {A_FlickyCheck}, S_FLICKY_13_AIM,                0, S_FLICKY_13_OUT, 0},  // S_FLICKY_13_OUT
-	{SPR_FL13, 1, 1, {A_FlickyAim},             ANG30,      32*FRACUNIT, S_FLICKY_13_HOP, 0},  // S_FLICKY_13_AIM
-	{SPR_FL13, 1, 1, {A_FlickyHop},        5*FRACUNIT,       3*FRACUNIT, S_FLICKY_13_UP, 0},   // S_FLICKY_13_HOP
-	{SPR_FL13, 2, 2, {A_FlickyCheck}, S_FLICKY_13_AIM, S_FLICKY_13_DOWN, S_FLICKY_13_UP, 0},   // S_FLICKY_13_UP
-	{SPR_FL13, 3, 2, {A_FlickyCheck}, S_FLICKY_13_AIM,                0, S_FLICKY_13_DOWN, 0}, // S_FLICKY_13_DOWN
-	{SPR_FL13, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_13_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_13, 384*FRACUNIT, S_FLICKY_13_CENTER, 0},        // S_FLICKY_13_CENTER
+	{SPR_FL13, 0, 2, A_FlickyCheck, S_FLICKY_13_AIM,                0, S_FLICKY_13_OUT, 0},  // S_FLICKY_13_OUT
+	{SPR_FL13, 1, 1, A_FlickyAim,             ANG30,      32*FRACUNIT, S_FLICKY_13_HOP, 0},  // S_FLICKY_13_AIM
+	{SPR_FL13, 1, 1, A_FlickyHop,        5*FRACUNIT,       3*FRACUNIT, S_FLICKY_13_UP, 0},   // S_FLICKY_13_HOP
+	{SPR_FL13, 2, 2, A_FlickyCheck, S_FLICKY_13_AIM, S_FLICKY_13_DOWN, S_FLICKY_13_UP, 0},   // S_FLICKY_13_UP
+	{SPR_FL13, 3, 2, A_FlickyCheck, S_FLICKY_13_AIM,                0, S_FLICKY_13_DOWN, 0}, // S_FLICKY_13_DOWN
+	{SPR_FL13, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_13_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_13, 384*FRACUNIT, S_FLICKY_13_CENTER, 0},        // S_FLICKY_13_CENTER
 
 	// Dove
-	{SPR_FL14, 0, 2, {A_FlickyCheck}, S_FLICKY_14_FLAP1, S_FLICKY_14_FLAP1, S_FLICKY_14_OUT, 0},   // S_FLICKY_14_OUT
-	{SPR_FL14, 1, 3, {A_FlickySoar},         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP2, 0}, // S_FLICKY_14_FLAP1
-	{SPR_FL14, 2, 3, {A_FlickySoar},         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP3, 0}, // S_FLICKY_14_FLAP2
-	{SPR_FL14, 3, 3, {A_FlickySoar},         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP1, 0}, // S_FLICKY_14_FLAP3
-	{SPR_FL14, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL, 0}, // S_FLICKY_14_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_14, 384*FRACUNIT, S_FLICKY_14_CENTER, 0},        // S_FLICKY_14_CENTER
+	{SPR_FL14, 0, 2, A_FlickyCheck, S_FLICKY_14_FLAP1, S_FLICKY_14_FLAP1, S_FLICKY_14_OUT, 0},   // S_FLICKY_14_OUT
+	{SPR_FL14, 1, 3, A_FlickySoar,         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP2, 0}, // S_FLICKY_14_FLAP1
+	{SPR_FL14, 2, 3, A_FlickySoar,         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP3, 0}, // S_FLICKY_14_FLAP2
+	{SPR_FL14, 3, 3, A_FlickySoar,         4*FRACUNIT,       32*FRACUNIT, S_FLICKY_14_FLAP1, 0}, // S_FLICKY_14_FLAP3
+	{SPR_FL14, FF_ANIMATE|1, -1, NULL, 2, 3, S_NULL, 0}, // S_FLICKY_14_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_14, 384*FRACUNIT, S_FLICKY_14_CENTER, 0},        // S_FLICKY_14_CENTER
 
 	// Cat
-	{SPR_FL15, 0, 2, {A_FlickyCheck}, S_FLICKY_15_AIM,                0, S_FLICKY_15_OUT, 0},  // S_FLICKY_15_OUT
-	{SPR_FL15, 1, 1, {A_FlickyAim},             ANG30,      32*FRACUNIT, S_FLICKY_15_HOP, 0},  // S_FLICKY_15_AIM
-	{SPR_FL15, 1, 1, {A_FlickyFlounder},   2*FRACUNIT,       6*FRACUNIT, S_FLICKY_15_UP, 0},   // S_FLICKY_15_HOP
-	{SPR_FL15, 2, 2, {A_FlickyCheck}, S_FLICKY_15_AIM, S_FLICKY_15_DOWN, S_FLICKY_15_UP, 0},   // S_FLICKY_15_UP
-	{SPR_FL15, 3, 2, {A_FlickyCheck}, S_FLICKY_15_AIM,                0, S_FLICKY_15_DOWN, 0}, // S_FLICKY_15_DOWN
-	{SPR_FL15, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_FLICKY_15_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_15, 384*FRACUNIT, S_FLICKY_15_CENTER, 0},        // S_FLICKY_15_CENTER
+	{SPR_FL15, 0, 2, A_FlickyCheck, S_FLICKY_15_AIM,                0, S_FLICKY_15_OUT, 0},  // S_FLICKY_15_OUT
+	{SPR_FL15, 1, 1, A_FlickyAim,             ANG30,      32*FRACUNIT, S_FLICKY_15_HOP, 0},  // S_FLICKY_15_AIM
+	{SPR_FL15, 1, 1, A_FlickyFlounder,   2*FRACUNIT,       6*FRACUNIT, S_FLICKY_15_UP, 0},   // S_FLICKY_15_HOP
+	{SPR_FL15, 2, 2, A_FlickyCheck, S_FLICKY_15_AIM, S_FLICKY_15_DOWN, S_FLICKY_15_UP, 0},   // S_FLICKY_15_UP
+	{SPR_FL15, 3, 2, A_FlickyCheck, S_FLICKY_15_AIM,                0, S_FLICKY_15_DOWN, 0}, // S_FLICKY_15_DOWN
+	{SPR_FL15, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_FLICKY_15_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_15, 384*FRACUNIT, S_FLICKY_15_CENTER, 0},        // S_FLICKY_15_CENTER
 
 	// Canary
-	{SPR_FL16, 0, 2, {A_FlickyHeightCheck}, S_FLICKY_16_FLAP1,          0, S_FLICKY_16_OUT, 0},   // S_FLICKY_16_OUT
-	{SPR_FL16, 1, 3, {A_FlickyFly},                4*FRACUNIT, 8*FRACUNIT, S_FLICKY_16_FLAP2, 0}, // S_FLICKY_16_FLAP1
-	{SPR_FL16, 2, 3, {A_SetObjectFlags},         MF_NOGRAVITY,          1, S_FLICKY_16_FLAP3, 0}, // S_FLICKY_16_FLAP2
-	{SPR_FL16, 3, 3, {A_FlickyHeightCheck}, S_FLICKY_16_FLAP1,          0, S_FLICKY_16_FLAP3, 0}, // S_FLICKY_16_FLAP3
-	{SPR_FL16, FF_ANIMATE|1, -1, {NULL}, 2, 3, S_NULL, 0}, // S_FLICKY_16_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_FLICKY_16, 384*FRACUNIT, S_FLICKY_16_CENTER, 0},        // S_FLICKY_16_CENTER
+	{SPR_FL16, 0, 2, A_FlickyHeightCheck, S_FLICKY_16_FLAP1,          0, S_FLICKY_16_OUT, 0},   // S_FLICKY_16_OUT
+	{SPR_FL16, 1, 3, A_FlickyFly,                4*FRACUNIT, 8*FRACUNIT, S_FLICKY_16_FLAP2, 0}, // S_FLICKY_16_FLAP1
+	{SPR_FL16, 2, 3, A_SetObjectFlags,         MF_NOGRAVITY,          1, S_FLICKY_16_FLAP3, 0}, // S_FLICKY_16_FLAP2
+	{SPR_FL16, 3, 3, A_FlickyHeightCheck, S_FLICKY_16_FLAP1,          0, S_FLICKY_16_FLAP3, 0}, // S_FLICKY_16_FLAP3
+	{SPR_FL16, FF_ANIMATE|1, -1, NULL, 2, 3, S_NULL, 0}, // S_FLICKY_16_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_FLICKY_16, 384*FRACUNIT, S_FLICKY_16_CENTER, 0},        // S_FLICKY_16_CENTER
 
 	// Spider
-	{SPR_FS01, 0, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM,                      0, S_SECRETFLICKY_01_OUT, 0},  // S_SECRETFLICKY_01_OUT
-	{SPR_FS01, 1, 1, {A_FlickyAim},                   ANG30,            32*FRACUNIT, S_SECRETFLICKY_01_HOP, 0},  // S_SECRETFLICKY_01_AIM
-	{SPR_FS01, 1, 1, {A_FlickyFlounder},         2*FRACUNIT,             6*FRACUNIT, S_SECRETFLICKY_01_UP, 0},   // S_SECRETFLICKY_01_HOP
-	{SPR_FS01, 2, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM, S_SECRETFLICKY_01_DOWN, S_SECRETFLICKY_01_UP, 0},   // S_SECRETFLICKY_01_UP
-	{SPR_FS01, 3, 2, {A_FlickyCheck}, S_SECRETFLICKY_01_AIM,                      0, S_SECRETFLICKY_01_DOWN, 0}, // S_SECRETFLICKY_01_DOWN
-	{SPR_FS01, FF_ANIMATE|1, -1, {NULL}, 2, 4, S_NULL, 0}, // S_SECRETFLICKY_01_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_SECRETFLICKY_01, 384*FRACUNIT, S_SECRETFLICKY_01_CENTER, 0},        // S_SECRETFLICKY_01_CENTER
+	{SPR_FS01, 0, 2, A_FlickyCheck, S_SECRETFLICKY_01_AIM,                      0, S_SECRETFLICKY_01_OUT, 0},  // S_SECRETFLICKY_01_OUT
+	{SPR_FS01, 1, 1, A_FlickyAim,                   ANG30,            32*FRACUNIT, S_SECRETFLICKY_01_HOP, 0},  // S_SECRETFLICKY_01_AIM
+	{SPR_FS01, 1, 1, A_FlickyFlounder,         2*FRACUNIT,             6*FRACUNIT, S_SECRETFLICKY_01_UP, 0},   // S_SECRETFLICKY_01_HOP
+	{SPR_FS01, 2, 2, A_FlickyCheck, S_SECRETFLICKY_01_AIM, S_SECRETFLICKY_01_DOWN, S_SECRETFLICKY_01_UP, 0},   // S_SECRETFLICKY_01_UP
+	{SPR_FS01, 3, 2, A_FlickyCheck, S_SECRETFLICKY_01_AIM,                      0, S_SECRETFLICKY_01_DOWN, 0}, // S_SECRETFLICKY_01_DOWN
+	{SPR_FS01, FF_ANIMATE|1, -1, NULL, 2, 4, S_NULL, 0}, // S_SECRETFLICKY_01_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_SECRETFLICKY_01, 384*FRACUNIT, S_SECRETFLICKY_01_CENTER, 0},        // S_SECRETFLICKY_01_CENTER
 
 	// Bat
-	{SPR_FS02, 0, 2, {A_FlickyHeightCheck}, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_OUT, 0},   // S_SECRETFLICKY_02_OUT
-	{SPR_FS02, 1, 3, {A_FlickyFly},                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP2, 0}, // S_SECRETFLICKY_02_FLAP1
-	{SPR_FS02, 2, 3, {A_FlickyFly},                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP3, 0}, // S_SECRETFLICKY_02_FLAP2
-	{SPR_FS02, 3, 3, {A_FlickyFly},                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP1, 0}, // S_SECRETFLICKY_02_FLAP3
-	{SPR_FS02, FF_ANIMATE|1, -1, {NULL}, 2, 2, S_NULL, 0}, // S_SECRETFLICKY_02_STAND
-	{SPR_NULL, 0, 15, {A_FlickyCenter}, MT_SECRETFLICKY_02, 384*FRACUNIT, S_SECRETFLICKY_02_CENTER, 0},        // S_SECRETFLICKY_02_CENTER
+	{SPR_FS02, 0, 2, A_FlickyHeightCheck, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_FLAP1, S_SECRETFLICKY_02_OUT, 0},   // S_SECRETFLICKY_02_OUT
+	{SPR_FS02, 1, 3, A_FlickyFly,                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP2, 0}, // S_SECRETFLICKY_02_FLAP1
+	{SPR_FS02, 2, 3, A_FlickyFly,                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP3, 0}, // S_SECRETFLICKY_02_FLAP2
+	{SPR_FS02, 3, 3, A_FlickyFly,                      4*FRACUNIT,             16*FRACUNIT, S_SECRETFLICKY_02_FLAP1, 0}, // S_SECRETFLICKY_02_FLAP3
+	{SPR_FS02, FF_ANIMATE|1, -1, NULL, 2, 2, S_NULL, 0}, // S_SECRETFLICKY_02_STAND
+	{SPR_NULL, 0, 15, A_FlickyCenter, MT_SECRETFLICKY_02, 384*FRACUNIT, S_SECRETFLICKY_02_CENTER, 0},        // S_SECRETFLICKY_02_CENTER
 
 	// Fan
-	{SPR_FANS, 0, 1, {A_FanBubbleSpawn}, 2048, 0, S_FAN2, 0}, // S_FAN
-	{SPR_FANS, 1, 1, {A_FanBubbleSpawn}, 1024, 0, S_FAN3, 0}, // S_FAN2
-	{SPR_FANS, 2, 1, {A_FanBubbleSpawn},  512, 0, S_FAN4, 0}, // S_FAN3
-	{SPR_FANS, 3, 1, {A_FanBubbleSpawn}, 1024, 0, S_FAN5, 0}, // S_FAN4
-	{SPR_FANS, 4, 1, {A_FanBubbleSpawn},  512, 0, S_FAN, 0},  // S_FAN5
+	{SPR_FANS, 0, 1, A_FanBubbleSpawn, 2048, 0, S_FAN2, 0}, // S_FAN
+	{SPR_FANS, 1, 1, A_FanBubbleSpawn, 1024, 0, S_FAN3, 0}, // S_FAN2
+	{SPR_FANS, 2, 1, A_FanBubbleSpawn,  512, 0, S_FAN4, 0}, // S_FAN3
+	{SPR_FANS, 3, 1, A_FanBubbleSpawn, 1024, 0, S_FAN5, 0}, // S_FAN4
+	{SPR_FANS, 4, 1, A_FanBubbleSpawn,  512, 0, S_FAN, 0},  // S_FAN5
 
 	// Steam Riser
-	{SPR_STEM, 0, 2, {A_SetSolidSteam}, 0, 0, S_STEAM2, 0},   // S_STEAM1
-	{SPR_STEM, 1, 2, {A_UnsetSolidSteam}, 0, 0, S_STEAM3, 0}, // S_STEAM2
-	{SPR_STEM, 2, 2, {NULL}, 0, 0, S_STEAM4, 0},              // S_STEAM3
-	{SPR_STEM, 3, 2, {NULL}, 0, 0, S_STEAM5, 0},              // S_STEAM4
-	{SPR_STEM, 4, 2, {NULL}, 0, 0, S_STEAM6, 0},              // S_STEAM5
-	{SPR_STEM, 5, 2, {NULL}, 0, 0, S_STEAM7, 0},              // S_STEAM6
-	{SPR_STEM, 6, 2, {NULL}, 0, 0, S_STEAM8, 0},              // S_STEAM7
-	{SPR_NULL, 0, 18, {NULL}, 0, 0, S_STEAM1, 0},             // S_STEAM8
+	{SPR_STEM, 0, 2, A_SetSolidSteam, 0, 0, S_STEAM2, 0},   // S_STEAM1
+	{SPR_STEM, 1, 2, A_UnsetSolidSteam, 0, 0, S_STEAM3, 0}, // S_STEAM2
+	{SPR_STEM, 2, 2, NULL, 0, 0, S_STEAM4, 0},              // S_STEAM3
+	{SPR_STEM, 3, 2, NULL, 0, 0, S_STEAM5, 0},              // S_STEAM4
+	{SPR_STEM, 4, 2, NULL, 0, 0, S_STEAM6, 0},              // S_STEAM5
+	{SPR_STEM, 5, 2, NULL, 0, 0, S_STEAM7, 0},              // S_STEAM6
+	{SPR_STEM, 6, 2, NULL, 0, 0, S_STEAM8, 0},              // S_STEAM7
+	{SPR_NULL, 0, 18, NULL, 0, 0, S_STEAM1, 0},             // S_STEAM8
 
 	// Bumpers
-	{SPR_BUMP, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL},   3, 4, S_NULL, 0},   // S_BUMPER
-	{SPR_BUMP, FF_ANIMATE|4,             12, {A_Pain}, 1, 3, S_BUMPER, 0}, //S_BUMPERHIT
+	{SPR_BUMP, FF_ANIMATE|FF_GLOBALANIM, -1, NULL,   3, 4, S_NULL, 0},   // S_BUMPER
+	{SPR_BUMP, FF_ANIMATE|4,             12, A_Pain, 1, 3, S_BUMPER, 0}, //S_BUMPERHIT
 
 	// Balloons
-	{SPR_BLON, FF_ANIMATE, -1, {NULL}, 2, 5, S_NULL, 0}, // S_BALLOON
-	{SPR_BLON, 3, 0, {A_RemoteDamage},   0, 1, S_BALLOONPOP2, 0}, // S_BALLOONPOP1
-	{SPR_BLON, 3, 1, {A_Pain},           0, 0, S_BALLOONPOP3, 0}, // S_BALLOONPOP2
-	{SPR_BLON, 4, 1, {NULL},             0, 0, S_BALLOONPOP4, 0}, // S_BALLOONPOP3
-	{SPR_NULL, 0, TICRATE, {A_CheckFlags2}, MF2_AMBUSH, S_BALLOONPOP5, S_NULL, 0}, // S_BALLOONPOP4
-	{SPR_NULL, 0, 15*TICRATE, {NULL},    0, 0, S_BALLOONPOP6, 0}, // S_BALLOONPOP5
-	{SPR_NULL, 0, 0, {A_SpawnFreshCopy}, 0, 0, S_NULL, 0},        // S_BALLOONPOP6
+	{SPR_BLON, FF_ANIMATE, -1, NULL, 2, 5, S_NULL, 0}, // S_BALLOON
+	{SPR_BLON, 3, 0, A_RemoteDamage,   0, 1, S_BALLOONPOP2, 0}, // S_BALLOONPOP1
+	{SPR_BLON, 3, 1, A_Pain,           0, 0, S_BALLOONPOP3, 0}, // S_BALLOONPOP2
+	{SPR_BLON, 4, 1, NULL,             0, 0, S_BALLOONPOP4, 0}, // S_BALLOONPOP3
+	{SPR_NULL, 0, TICRATE, A_CheckFlags2, MF2_AMBUSH, S_BALLOONPOP5, S_NULL, 0}, // S_BALLOONPOP4
+	{SPR_NULL, 0, 15*TICRATE, NULL,    0, 0, S_BALLOONPOP6, 0}, // S_BALLOONPOP5
+	{SPR_NULL, 0, 0, A_SpawnFreshCopy, 0, 0, S_NULL, 0},        // S_BALLOONPOP6
 
 	// Yellow Spring
-	{SPR_SPRY, 0, -1, {NULL}, 0, 0, S_NULL, 0},           // S_YELLOWSPRING
-	{SPR_SPRY, 4, 4, {A_Pain}, 0, 0, S_YELLOWSPRING3, 0}, // S_YELLOWSPRING2
-	{SPR_SPRY, 3, 1, {NULL}, 0, 0, S_YELLOWSPRING4, 0},   // S_YELLOWSPRING3
-	{SPR_SPRY, 2, 1, {NULL}, 0, 0, S_YELLOWSPRING5, 0},   // S_YELLOWSPRING4
-	{SPR_SPRY, 1, 1, {NULL}, 0, 0, S_YELLOWSPRING, 0},    // S_YELLOWSPRING5
+	{SPR_SPRY, 0, -1, NULL, 0, 0, S_NULL, 0},           // S_YELLOWSPRING
+	{SPR_SPRY, 4, 4, A_Pain, 0, 0, S_YELLOWSPRING3, 0}, // S_YELLOWSPRING2
+	{SPR_SPRY, 3, 1, NULL, 0, 0, S_YELLOWSPRING4, 0},   // S_YELLOWSPRING3
+	{SPR_SPRY, 2, 1, NULL, 0, 0, S_YELLOWSPRING5, 0},   // S_YELLOWSPRING4
+	{SPR_SPRY, 1, 1, NULL, 0, 0, S_YELLOWSPRING, 0},    // S_YELLOWSPRING5
 
 	// Red Spring
-	{SPR_SPRR, 0, -1, {NULL}, 0, 0, S_NULL, 0},        // S_REDSPRING
-	{SPR_SPRR, 4, 4, {A_Pain}, 0, 0, S_REDSPRING3, 0}, // S_REDSPRING2
-	{SPR_SPRR, 3, 1, {NULL}, 0, 0, S_REDSPRING4, 0},   // S_REDSPRING3
-	{SPR_SPRR, 2, 1, {NULL}, 0, 0, S_REDSPRING5, 0},   // S_REDSPRING4
-	{SPR_SPRR, 1, 1, {NULL}, 0, 0, S_REDSPRING, 0},    // S_REDSPRING5
+	{SPR_SPRR, 0, -1, NULL, 0, 0, S_NULL, 0},        // S_REDSPRING
+	{SPR_SPRR, 4, 4, A_Pain, 0, 0, S_REDSPRING3, 0}, // S_REDSPRING2
+	{SPR_SPRR, 3, 1, NULL, 0, 0, S_REDSPRING4, 0},   // S_REDSPRING3
+	{SPR_SPRR, 2, 1, NULL, 0, 0, S_REDSPRING5, 0},   // S_REDSPRING4
+	{SPR_SPRR, 1, 1, NULL, 0, 0, S_REDSPRING, 0},    // S_REDSPRING5
 
 	// Blue Spring
-	{SPR_SPRB, 0, -1, {NULL}, 0, 0, S_NULL, 0},         // S_BLUESPRING
-	{SPR_SPRB, 4, 4, {A_Pain}, 0, 0, S_BLUESPRING3, 0}, // S_BLUESPRING2
-	{SPR_SPRB, 3, 1, {NULL}, 0, 0, S_BLUESPRING4, 0},   // S_BLUESPRING3
-	{SPR_SPRB, 2, 1, {NULL}, 0, 0, S_BLUESPRING5, 0},   // S_BLUESPRING4
-	{SPR_SPRB, 1, 1, {NULL}, 0, 0, S_BLUESPRING, 0},    // S_BLUESPRING5
+	{SPR_SPRB, 0, -1, NULL, 0, 0, S_NULL, 0},         // S_BLUESPRING
+	{SPR_SPRB, 4, 4, A_Pain, 0, 0, S_BLUESPRING3, 0}, // S_BLUESPRING2
+	{SPR_SPRB, 3, 1, NULL, 0, 0, S_BLUESPRING4, 0},   // S_BLUESPRING3
+	{SPR_SPRB, 2, 1, NULL, 0, 0, S_BLUESPRING5, 0},   // S_BLUESPRING4
+	{SPR_SPRB, 1, 1, NULL, 0, 0, S_BLUESPRING, 0},    // S_BLUESPRING5
 
 	// Yellow Diagonal Spring
-	{SPR_YSPR, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_YDIAG1
-	{SPR_YSPR, 1, 1, {A_Pain}, 0, 0, S_YDIAG3, 0}, // S_YDIAG2
-	{SPR_YSPR, 2, 1, {NULL}, 0, 0, S_YDIAG4, 0},   // S_YDIAG3
-	{SPR_YSPR, 3, 1, {NULL}, 0, 0, S_YDIAG5, 0},   // S_YDIAG4
-	{SPR_YSPR, 4, 1, {NULL}, 0, 0, S_YDIAG6, 0},   // S_YDIAG5
-	{SPR_YSPR, 3, 1, {NULL}, 0, 0, S_YDIAG7, 0},   // S_YDIAG6
-	{SPR_YSPR, 2, 1, {NULL}, 0, 0, S_YDIAG8, 0},   // S_YDIAG7
-	{SPR_YSPR, 1, 1, {NULL}, 0, 0, S_YDIAG1, 0},   // S_YDIAG8
+	{SPR_YSPR, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_YDIAG1
+	{SPR_YSPR, 1, 1, A_Pain, 0, 0, S_YDIAG3, 0}, // S_YDIAG2
+	{SPR_YSPR, 2, 1, NULL, 0, 0, S_YDIAG4, 0},   // S_YDIAG3
+	{SPR_YSPR, 3, 1, NULL, 0, 0, S_YDIAG5, 0},   // S_YDIAG4
+	{SPR_YSPR, 4, 1, NULL, 0, 0, S_YDIAG6, 0},   // S_YDIAG5
+	{SPR_YSPR, 3, 1, NULL, 0, 0, S_YDIAG7, 0},   // S_YDIAG6
+	{SPR_YSPR, 2, 1, NULL, 0, 0, S_YDIAG8, 0},   // S_YDIAG7
+	{SPR_YSPR, 1, 1, NULL, 0, 0, S_YDIAG1, 0},   // S_YDIAG8
 
 	// Red Diagonal Spring
-	{SPR_RSPR, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_RDIAG1
-	{SPR_RSPR, 1, 1, {A_Pain}, 0, 0, S_RDIAG3, 0}, // S_RDIAG2
-	{SPR_RSPR, 2, 1, {NULL}, 0, 0, S_RDIAG4, 0},   // S_RDIAG3
-	{SPR_RSPR, 3, 1, {NULL}, 0, 0, S_RDIAG5, 0},   // S_RDIAG4
-	{SPR_RSPR, 4, 1, {NULL}, 0, 0, S_RDIAG6, 0},   // S_RDIAG5
-	{SPR_RSPR, 3, 1, {NULL}, 0, 0, S_RDIAG7, 0},   // S_RDIAG6
-	{SPR_RSPR, 2, 1, {NULL}, 0, 0, S_RDIAG8, 0},   // S_RDIAG7
-	{SPR_RSPR, 1, 1, {NULL}, 0, 0, S_RDIAG1, 0},   // S_RDIAG8
+	{SPR_RSPR, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_RDIAG1
+	{SPR_RSPR, 1, 1, A_Pain, 0, 0, S_RDIAG3, 0}, // S_RDIAG2
+	{SPR_RSPR, 2, 1, NULL, 0, 0, S_RDIAG4, 0},   // S_RDIAG3
+	{SPR_RSPR, 3, 1, NULL, 0, 0, S_RDIAG5, 0},   // S_RDIAG4
+	{SPR_RSPR, 4, 1, NULL, 0, 0, S_RDIAG6, 0},   // S_RDIAG5
+	{SPR_RSPR, 3, 1, NULL, 0, 0, S_RDIAG7, 0},   // S_RDIAG6
+	{SPR_RSPR, 2, 1, NULL, 0, 0, S_RDIAG8, 0},   // S_RDIAG7
+	{SPR_RSPR, 1, 1, NULL, 0, 0, S_RDIAG1, 0},   // S_RDIAG8
 
 	// Blue Diagonal Spring
-	{SPR_BSPR, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_BDIAG1
-	{SPR_BSPR, 1, 1, {A_Pain}, 0, 0, S_BDIAG3, 0}, // S_BDIAG2
-	{SPR_BSPR, 2, 1, {NULL}, 0, 0, S_BDIAG4, 0},   // S_BDIAG3
-	{SPR_BSPR, 3, 1, {NULL}, 0, 0, S_BDIAG5, 0},   // S_BDIAG4
-	{SPR_BSPR, 4, 1, {NULL}, 0, 0, S_BDIAG6, 0},   // S_BDIAG5
-	{SPR_BSPR, 3, 1, {NULL}, 0, 0, S_BDIAG7, 0},   // S_BDIAG6
-	{SPR_BSPR, 2, 1, {NULL}, 0, 0, S_BDIAG8, 0},   // S_BDIAG7
-	{SPR_BSPR, 1, 1, {NULL}, 0, 0, S_BDIAG1, 0},   // S_BDIAG8
+	{SPR_BSPR, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_BDIAG1
+	{SPR_BSPR, 1, 1, A_Pain, 0, 0, S_BDIAG3, 0}, // S_BDIAG2
+	{SPR_BSPR, 2, 1, NULL, 0, 0, S_BDIAG4, 0},   // S_BDIAG3
+	{SPR_BSPR, 3, 1, NULL, 0, 0, S_BDIAG5, 0},   // S_BDIAG4
+	{SPR_BSPR, 4, 1, NULL, 0, 0, S_BDIAG6, 0},   // S_BDIAG5
+	{SPR_BSPR, 3, 1, NULL, 0, 0, S_BDIAG7, 0},   // S_BDIAG6
+	{SPR_BSPR, 2, 1, NULL, 0, 0, S_BDIAG8, 0},   // S_BDIAG7
+	{SPR_BSPR, 1, 1, NULL, 0, 0, S_BDIAG1, 0},   // S_BDIAG8
 
 	// Yellow Side Spring
-	{SPR_SSWY, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_YHORIZ1
-	{SPR_SSWY, 1, 1, {A_Pain}, 0, 0, S_YHORIZ3, 0}, // S_YHORIZ2
-	{SPR_SSWY, 2, 1, {NULL}, 0, 0, S_YHORIZ4, 0},   // S_YHORIZ3
-	{SPR_SSWY, 3, 1, {NULL}, 0, 0, S_YHORIZ5, 0},   // S_YHORIZ4
-	{SPR_SSWY, 4, 1, {NULL}, 0, 0, S_YHORIZ6, 0},   // S_YHORIZ5
-	{SPR_SSWY, 3, 1, {NULL}, 0, 0, S_YHORIZ7, 0},   // S_YHORIZ6
-	{SPR_SSWY, 2, 1, {NULL}, 0, 0, S_YHORIZ8, 0},   // S_YHORIZ7
-	{SPR_SSWY, 1, 1, {NULL}, 0, 0, S_YHORIZ1, 0},   // S_YHORIZ8
+	{SPR_SSWY, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_YHORIZ1
+	{SPR_SSWY, 1, 1, A_Pain, 0, 0, S_YHORIZ3, 0}, // S_YHORIZ2
+	{SPR_SSWY, 2, 1, NULL, 0, 0, S_YHORIZ4, 0},   // S_YHORIZ3
+	{SPR_SSWY, 3, 1, NULL, 0, 0, S_YHORIZ5, 0},   // S_YHORIZ4
+	{SPR_SSWY, 4, 1, NULL, 0, 0, S_YHORIZ6, 0},   // S_YHORIZ5
+	{SPR_SSWY, 3, 1, NULL, 0, 0, S_YHORIZ7, 0},   // S_YHORIZ6
+	{SPR_SSWY, 2, 1, NULL, 0, 0, S_YHORIZ8, 0},   // S_YHORIZ7
+	{SPR_SSWY, 1, 1, NULL, 0, 0, S_YHORIZ1, 0},   // S_YHORIZ8
 
 	// Red Side Spring
-	{SPR_SSWR, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_RHORIZ1
-	{SPR_SSWR, 1, 1, {A_Pain}, 0, 0, S_RHORIZ3, 0}, // S_RHORIZ2
-	{SPR_SSWR, 2, 1, {NULL}, 0, 0, S_RHORIZ4, 0},   // S_RHORIZ3
-	{SPR_SSWR, 3, 1, {NULL}, 0, 0, S_RHORIZ5, 0},   // S_RHORIZ4
-	{SPR_SSWR, 4, 1, {NULL}, 0, 0, S_RHORIZ6, 0},   // S_RHORIZ5
-	{SPR_SSWR, 3, 1, {NULL}, 0, 0, S_RHORIZ7, 0},   // S_RHORIZ6
-	{SPR_SSWR, 2, 1, {NULL}, 0, 0, S_RHORIZ8, 0},   // S_RHORIZ7
-	{SPR_SSWR, 1, 1, {NULL}, 0, 0, S_RHORIZ1, 0},   // S_RHORIZ8
+	{SPR_SSWR, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_RHORIZ1
+	{SPR_SSWR, 1, 1, A_Pain, 0, 0, S_RHORIZ3, 0}, // S_RHORIZ2
+	{SPR_SSWR, 2, 1, NULL, 0, 0, S_RHORIZ4, 0},   // S_RHORIZ3
+	{SPR_SSWR, 3, 1, NULL, 0, 0, S_RHORIZ5, 0},   // S_RHORIZ4
+	{SPR_SSWR, 4, 1, NULL, 0, 0, S_RHORIZ6, 0},   // S_RHORIZ5
+	{SPR_SSWR, 3, 1, NULL, 0, 0, S_RHORIZ7, 0},   // S_RHORIZ6
+	{SPR_SSWR, 2, 1, NULL, 0, 0, S_RHORIZ8, 0},   // S_RHORIZ7
+	{SPR_SSWR, 1, 1, NULL, 0, 0, S_RHORIZ1, 0},   // S_RHORIZ8
 
 	// Blue Side Spring
-	{SPR_SSWB, 0, -1, {NULL}, 0, 0, S_NULL, 0},    // S_BHORIZ1
-	{SPR_SSWB, 1, 1, {A_Pain}, 0, 0, S_BHORIZ3, 0}, // S_BHORIZ2
-	{SPR_SSWB, 2, 1, {NULL}, 0, 0, S_BHORIZ4, 0},   // S_BHORIZ3
-	{SPR_SSWB, 3, 1, {NULL}, 0, 0, S_BHORIZ5, 0},   // S_BHORIZ4
-	{SPR_SSWB, 4, 1, {NULL}, 0, 0, S_BHORIZ6, 0},   // S_BHORIZ5
-	{SPR_SSWB, 3, 1, {NULL}, 0, 0, S_BHORIZ7, 0},   // S_BHORIZ6
-	{SPR_SSWB, 2, 1, {NULL}, 0, 0, S_BHORIZ8, 0},   // S_BHORIZ7
-	{SPR_SSWB, 1, 1, {NULL}, 0, 0, S_BHORIZ1, 0},   // S_BHORIZ8
+	{SPR_SSWB, 0, -1, NULL, 0, 0, S_NULL, 0},    // S_BHORIZ1
+	{SPR_SSWB, 1, 1, A_Pain, 0, 0, S_BHORIZ3, 0}, // S_BHORIZ2
+	{SPR_SSWB, 2, 1, NULL, 0, 0, S_BHORIZ4, 0},   // S_BHORIZ3
+	{SPR_SSWB, 3, 1, NULL, 0, 0, S_BHORIZ5, 0},   // S_BHORIZ4
+	{SPR_SSWB, 4, 1, NULL, 0, 0, S_BHORIZ6, 0},   // S_BHORIZ5
+	{SPR_SSWB, 3, 1, NULL, 0, 0, S_BHORIZ7, 0},   // S_BHORIZ6
+	{SPR_SSWB, 2, 1, NULL, 0, 0, S_BHORIZ8, 0},   // S_BHORIZ7
+	{SPR_SSWB, 1, 1, NULL, 0, 0, S_BHORIZ1, 0},   // S_BHORIZ8
 
 	// Boosters
-	{SPR_NULL, 0, 1, {A_Pain}, 0, 0, S_INVISIBLE, 0}, // S_BOOSTERSOUND
-	{SPR_BSTY,                  FF_ANIMATE, -1, {NULL}, 2, 1, S_NULL, 0}, // S_YELLOWBOOSTERROLLER
-	{SPR_BSTY, 3|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 2, 3, S_NULL, 0}, // S_YELLOWBOOSTERSEG_LEFT
-	{SPR_BSTY, 6|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 2, 3, S_NULL, 0}, // S_YELLOWBOOSTERSEG_RIGHT
-	{SPR_BSTY, 9|FF_PAPERSPRITE,            -1, {NULL}, 0, 0, S_NULL, 0}, // S_YELLOWBOOSTERSEG_FACE
-	{SPR_BSTR,                  FF_ANIMATE, -1, {NULL}, 2, 1, S_NULL, 0}, // S_REDBOOSTERROLLER
-	{SPR_BSTR, 3|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 2, 3, S_NULL, 0}, // S_REDBOOSTERSEG_LEFT
-	{SPR_BSTR, 6|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 2, 3, S_NULL, 0}, // S_REDBOOSTERSEG_RIGHT
-	{SPR_BSTR, 9|FF_PAPERSPRITE,            -1, {NULL}, 0, 0, S_NULL, 0}, // S_REDBOOSTERSEG_FACE
+	{SPR_NULL, 0, 1, A_Pain, 0, 0, S_INVISIBLE, 0}, // S_BOOSTERSOUND
+	{SPR_BSTY,                  FF_ANIMATE, -1, NULL, 2, 1, S_NULL, 0}, // S_YELLOWBOOSTERROLLER
+	{SPR_BSTY, 3|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL, 2, 3, S_NULL, 0}, // S_YELLOWBOOSTERSEG_LEFT
+	{SPR_BSTY, 6|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL, 2, 3, S_NULL, 0}, // S_YELLOWBOOSTERSEG_RIGHT
+	{SPR_BSTY, 9|FF_PAPERSPRITE,            -1, NULL, 0, 0, S_NULL, 0}, // S_YELLOWBOOSTERSEG_FACE
+	{SPR_BSTR,                  FF_ANIMATE, -1, NULL, 2, 1, S_NULL, 0}, // S_REDBOOSTERROLLER
+	{SPR_BSTR, 3|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL, 2, 3, S_NULL, 0}, // S_REDBOOSTERSEG_LEFT
+	{SPR_BSTR, 6|FF_PAPERSPRITE|FF_ANIMATE, -1, NULL, 2, 3, S_NULL, 0}, // S_REDBOOSTERSEG_RIGHT
+	{SPR_BSTR, 9|FF_PAPERSPRITE,            -1, NULL, 0, 0, S_NULL, 0}, // S_REDBOOSTERSEG_FACE
 
 	// Rain
-	{SPR_RAIN, FF_FULLBRIGHT|FF_TRANS50, -1, {NULL}, 0, 0, S_NULL, 0}, // S_RAIN1
-	{SPR_RAIN, FF_FULLBRIGHT|FF_TRANS50, 1, {NULL}, 0, 0, S_RAIN1, 0}, // S_RAINRETURN
+	{SPR_RAIN, FF_FULLBRIGHT|FF_TRANS50, -1, NULL, 0, 0, S_NULL, 0}, // S_RAIN1
+	{SPR_RAIN, FF_FULLBRIGHT|FF_TRANS50, 1, NULL, 0, 0, S_RAIN1, 0}, // S_RAINRETURN
 
 	// Snowflake
-	{SPR_SNO1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SNOW1
-	{SPR_SNO1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SNOW2
-	{SPR_SNO1, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SNOW3
+	{SPR_SNO1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SNOW1
+	{SPR_SNO1, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_SNOW2
+	{SPR_SNO1, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_SNOW3
 
 	// Water Splish
-	{SPR_SPLH, FF_TRANS50  , 2, {NULL}, 0, 0, S_SPLISH2, 0}, // S_SPLISH1
-	{SPR_SPLH, FF_TRANS50|1, 2, {NULL}, 0, 0, S_SPLISH3, 0}, // S_SPLISH2
-	{SPR_SPLH, FF_TRANS50|2, 2, {NULL}, 0, 0, S_SPLISH4, 0}, // S_SPLISH3
-	{SPR_SPLH, FF_TRANS50|3, 2, {NULL}, 0, 0, S_SPLISH5, 0}, // S_SPLISH4
-	{SPR_SPLH, FF_TRANS50|4, 2, {NULL}, 0, 0, S_SPLISH6, 0}, // S_SPLISH5
-	{SPR_SPLH, FF_TRANS50|5, 2, {NULL}, 0, 0, S_SPLISH7, 0}, // S_SPLISH6
-	{SPR_SPLH, FF_TRANS50|6, 2, {NULL}, 0, 0, S_SPLISH8, 0}, // S_SPLISH7
-	{SPR_SPLH, FF_TRANS50|7, 2, {NULL}, 0, 0, S_SPLISH9, 0}, // S_SPLISH8
-	{SPR_SPLH, FF_TRANS50|8, 2, {NULL}, 0, 0, S_NULL, 0},    // S_SPLISH9
+	{SPR_SPLH, FF_TRANS50  , 2, NULL, 0, 0, S_SPLISH2, 0}, // S_SPLISH1
+	{SPR_SPLH, FF_TRANS50|1, 2, NULL, 0, 0, S_SPLISH3, 0}, // S_SPLISH2
+	{SPR_SPLH, FF_TRANS50|2, 2, NULL, 0, 0, S_SPLISH4, 0}, // S_SPLISH3
+	{SPR_SPLH, FF_TRANS50|3, 2, NULL, 0, 0, S_SPLISH5, 0}, // S_SPLISH4
+	{SPR_SPLH, FF_TRANS50|4, 2, NULL, 0, 0, S_SPLISH6, 0}, // S_SPLISH5
+	{SPR_SPLH, FF_TRANS50|5, 2, NULL, 0, 0, S_SPLISH7, 0}, // S_SPLISH6
+	{SPR_SPLH, FF_TRANS50|6, 2, NULL, 0, 0, S_SPLISH8, 0}, // S_SPLISH7
+	{SPR_SPLH, FF_TRANS50|7, 2, NULL, 0, 0, S_SPLISH9, 0}, // S_SPLISH8
+	{SPR_SPLH, FF_TRANS50|8, 2, NULL, 0, 0, S_NULL, 0},    // S_SPLISH9
 
 	// Lava splish
-	{SPR_LSPL, FF_ANIMATE, 16, {NULL}, 7, 2, S_NULL, 0}, // S_LAVASPLISH
+	{SPR_LSPL, FF_ANIMATE, 16, NULL, 7, 2, S_NULL, 0}, // S_LAVASPLISH
 
 	// Water Splash
-	{SPR_SPLA, FF_TRANS50  , 3, {NULL}, 0, 0, S_SPLASH2, 0},    // S_SPLASH1
-	{SPR_SPLA, FF_TRANS70|1, 3, {NULL}, 0, 0, S_SPLASH3, 0},    // S_SPLASH2
-	{SPR_SPLA, FF_TRANS90|2, 3, {NULL}, 0, 0, S_RAINRETURN, 0}, // S_SPLASH3
+	{SPR_SPLA, FF_TRANS50  , 3, NULL, 0, 0, S_SPLASH2, 0},    // S_SPLASH1
+	{SPR_SPLA, FF_TRANS70|1, 3, NULL, 0, 0, S_SPLASH3, 0},    // S_SPLASH2
+	{SPR_SPLA, FF_TRANS90|2, 3, NULL, 0, 0, S_RAINRETURN, 0}, // S_SPLASH3
 
 	// Smoke
-	{SPR_SMOK, FF_TRANS50  , 4, {NULL}, 0, 0, S_SMOKE2, 0}, // S_SMOKE1
-	{SPR_SMOK, FF_TRANS50|1, 5, {NULL}, 0, 0, S_SMOKE3, 0}, // S_SMOKE2
-	{SPR_SMOK, FF_TRANS50|2, 6, {NULL}, 0, 0, S_SMOKE4, 0}, // S_SMOKE3
-	{SPR_SMOK, FF_TRANS50|3, 7, {NULL}, 0, 0, S_SMOKE5, 0}, // S_SMOKE4
-	{SPR_SMOK, FF_TRANS50|4, 8, {NULL}, 0, 0, S_NULL, 0},   // S_SMOKE5
+	{SPR_SMOK, FF_TRANS50  , 4, NULL, 0, 0, S_SMOKE2, 0}, // S_SMOKE1
+	{SPR_SMOK, FF_TRANS50|1, 5, NULL, 0, 0, S_SMOKE3, 0}, // S_SMOKE2
+	{SPR_SMOK, FF_TRANS50|2, 6, NULL, 0, 0, S_SMOKE4, 0}, // S_SMOKE3
+	{SPR_SMOK, FF_TRANS50|3, 7, NULL, 0, 0, S_SMOKE5, 0}, // S_SMOKE4
+	{SPR_SMOK, FF_TRANS50|4, 8, NULL, 0, 0, S_NULL, 0},   // S_SMOKE5
 
 	// Bubbles
-	{SPR_BUBL, FF_TRANS50,   1, {A_BubbleRise}, 0, 1024, S_SMALLBUBBLE, 0},  // S_SMALLBUBBLE
-	{SPR_BUBL, FF_TRANS50|1, 1, {A_BubbleRise}, 0, 1024, S_MEDIUMBUBBLE, 0}, // S_MEDIUMBUBBLE
+	{SPR_BUBL, FF_TRANS50,   1, A_BubbleRise, 0, 1024, S_SMALLBUBBLE, 0},  // S_SMALLBUBBLE
+	{SPR_BUBL, FF_TRANS50|1, 1, A_BubbleRise, 0, 1024, S_MEDIUMBUBBLE, 0}, // S_MEDIUMBUBBLE
 
 	// Extra Large Bubble (breathable)
-	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|2,   8, {A_BubbleRise}, 0, 1024, S_LARGEBUBBLE2, 0}, // S_LARGEBUBBLE1
-	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|3,   8, {A_BubbleRise}, 0, 1024, S_EXTRALARGEBUBBLE, 0}, // S_LARGEBUBBLE2
-	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|4,  16, {A_BubbleRise}, 0, 1024, S_EXTRALARGEBUBBLE, 0}, // S_EXTRALARGEBUBBLE
+	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|2,   8, A_BubbleRise, 0, 1024, S_LARGEBUBBLE2, 0}, // S_LARGEBUBBLE1
+	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|3,   8, A_BubbleRise, 0, 1024, S_EXTRALARGEBUBBLE, 0}, // S_LARGEBUBBLE2
+	{SPR_BUBL, FF_TRANS50|FF_FULLBRIGHT|4,  16, A_BubbleRise, 0, 1024, S_EXTRALARGEBUBBLE, 0}, // S_EXTRALARGEBUBBLE
 
 	// Extra Large Bubble goes POP!
-	{SPR_BUBL, 5, 16, {NULL}, 0, 0, S_NULL, 0}, // S_POP1
+	{SPR_BUBL, 5, 16, NULL, 0, 0, S_NULL, 0}, // S_POP1
 
-	{SPR_WZAP, FF_TRANS10|FF_ANIMATE|FF_RANDOMANIM, 4, {NULL}, 3, 2, S_NULL, 0},  // S_WATERZAP
+	{SPR_WZAP, FF_TRANS10|FF_ANIMATE|FF_RANDOMANIM, 4, NULL, 3, 2, S_NULL, 0},  // S_WATERZAP
 
 	// Spindash dust
-	{SPR_DUST,                          0, 7, {NULL}, 0, 0, S_SPINDUST2, 0}, // S_SPINDUST1
-	{SPR_DUST,                          1, 6, {NULL}, 0, 0, S_SPINDUST3, 0}, // S_SPINDUST2
-	{SPR_DUST,               FF_TRANS30|2, 4, {NULL}, 0, 0, S_SPINDUST4, 0}, // S_SPINDUST3
-	{SPR_DUST,               FF_TRANS60|3, 3, {NULL}, 0, 0, S_NULL, 0}, // S_SPINDUST4
-	{SPR_BUBL,                          0, 7, {NULL}, 0, 0, S_SPINDUST_BUBBLE2, 0}, // S_SPINDUST_BUBBLE1
-	{SPR_BUBL,                          0, 6, {NULL}, 0, 0, S_SPINDUST_BUBBLE3, 0}, // S_SPINDUST_BUBBLE2
-	{SPR_BUBL,               FF_TRANS30|0, 4, {NULL}, 0, 0, S_SPINDUST_BUBBLE4, 0}, // S_SPINDUST_BUBBLE3
-	{SPR_BUBL,               FF_TRANS60|0, 3, {NULL}, 0, 0, S_NULL, 0}, // S_SPINDUST_BUBBLE4
-	{SPR_FPRT,            FF_FULLBRIGHT|0, 7, {NULL}, 0, 0, S_SPINDUST_FIRE2, 0}, // S_SPINDUST_FIRE1
-	{SPR_FPRT,            FF_FULLBRIGHT|0, 6, {NULL}, 0, 0, S_SPINDUST_FIRE3, 0}, // S_SPINDUST_FIRE2
-	{SPR_FPRT, FF_FULLBRIGHT|FF_TRANS30|0, 4, {NULL}, 0, 0, S_SPINDUST_FIRE4, 0}, // S_SPINDUST_FIRE3
-	{SPR_FPRT, FF_FULLBRIGHT|FF_TRANS60|0, 3, {NULL}, 0, 0, S_NULL, 0}, // S_SPINDUST_FIRE4
-
-
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50,    2, {NULL}, 0, 0, S_FOG2, 0},  // S_FOG1
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|1,  2, {NULL}, 0, 0, S_FOG3, 0},  // S_FOG2
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|2,  2, {NULL}, 0, 0, S_FOG4, 0},  // S_FOG3
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|3,  2, {NULL}, 0, 0, S_FOG5, 0},  // S_FOG4
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|4,  2, {NULL}, 0, 0, S_FOG6, 0},  // S_FOG5
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|5,  2, {NULL}, 0, 0, S_FOG7, 0},  // S_FOG6
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|6,  2, {NULL}, 0, 0, S_FOG8, 0},  // S_FOG7
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|7,  2, {NULL}, 0, 0, S_FOG9, 0},  // S_FOG8
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|8,  2, {NULL}, 0, 0, S_FOG10, 0}, // S_FOG9
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|9,  2, {NULL}, 0, 0, S_FOG11, 0}, // S_FOG10
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|10, 2, {NULL}, 0, 0, S_FOG12, 0}, // S_FOG11
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|11, 2, {NULL}, 0, 0, S_FOG13, 0}, // S_FOG12
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|12, 2, {NULL}, 0, 0, S_FOG14, 0}, // S_FOG13
-	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|13, 2, {NULL}, 0, 0, S_NULL, 0},  // S_FOG14
+	{SPR_DUST,                          0, 7, NULL, 0, 0, S_SPINDUST2, 0}, // S_SPINDUST1
+	{SPR_DUST,                          1, 6, NULL, 0, 0, S_SPINDUST3, 0}, // S_SPINDUST2
+	{SPR_DUST,               FF_TRANS30|2, 4, NULL, 0, 0, S_SPINDUST4, 0}, // S_SPINDUST3
+	{SPR_DUST,               FF_TRANS60|3, 3, NULL, 0, 0, S_NULL, 0}, // S_SPINDUST4
+	{SPR_BUBL,                          0, 7, NULL, 0, 0, S_SPINDUST_BUBBLE2, 0}, // S_SPINDUST_BUBBLE1
+	{SPR_BUBL,                          0, 6, NULL, 0, 0, S_SPINDUST_BUBBLE3, 0}, // S_SPINDUST_BUBBLE2
+	{SPR_BUBL,               FF_TRANS30|0, 4, NULL, 0, 0, S_SPINDUST_BUBBLE4, 0}, // S_SPINDUST_BUBBLE3
+	{SPR_BUBL,               FF_TRANS60|0, 3, NULL, 0, 0, S_NULL, 0}, // S_SPINDUST_BUBBLE4
+	{SPR_FPRT,            FF_FULLBRIGHT|0, 7, NULL, 0, 0, S_SPINDUST_FIRE2, 0}, // S_SPINDUST_FIRE1
+	{SPR_FPRT,            FF_FULLBRIGHT|0, 6, NULL, 0, 0, S_SPINDUST_FIRE3, 0}, // S_SPINDUST_FIRE2
+	{SPR_FPRT, FF_FULLBRIGHT|FF_TRANS30|0, 4, NULL, 0, 0, S_SPINDUST_FIRE4, 0}, // S_SPINDUST_FIRE3
+	{SPR_FPRT, FF_FULLBRIGHT|FF_TRANS60|0, 3, NULL, 0, 0, S_NULL, 0}, // S_SPINDUST_FIRE4
+
+
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50,    2, NULL, 0, 0, S_FOG2, 0},  // S_FOG1
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|1,  2, NULL, 0, 0, S_FOG3, 0},  // S_FOG2
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|2,  2, NULL, 0, 0, S_FOG4, 0},  // S_FOG3
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|3,  2, NULL, 0, 0, S_FOG5, 0},  // S_FOG4
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|4,  2, NULL, 0, 0, S_FOG6, 0},  // S_FOG5
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|5,  2, NULL, 0, 0, S_FOG7, 0},  // S_FOG6
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|6,  2, NULL, 0, 0, S_FOG8, 0},  // S_FOG7
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|7,  2, NULL, 0, 0, S_FOG9, 0},  // S_FOG8
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|8,  2, NULL, 0, 0, S_FOG10, 0}, // S_FOG9
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|9,  2, NULL, 0, 0, S_FOG11, 0}, // S_FOG10
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|10, 2, NULL, 0, 0, S_FOG12, 0}, // S_FOG11
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|11, 2, NULL, 0, 0, S_FOG13, 0}, // S_FOG12
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|12, 2, NULL, 0, 0, S_FOG14, 0}, // S_FOG13
+	{SPR_TFOG, FF_FULLBRIGHT|FF_TRANS50|13, 2, NULL, 0, 0, S_NULL, 0},  // S_FOG14
 
 	// Flower Seed
-	{SPR_SEED, FF_FULLBRIGHT|FF_ANIMATE, -1, {NULL}, 2, 2, S_NULL, 0}, // S_SEED
+	{SPR_SEED, FF_FULLBRIGHT|FF_ANIMATE, -1, NULL, 2, 2, S_NULL, 0}, // S_SEED
 
 	// Particle sprite
-	{SPR_PRTL, 0, 2*TICRATE, {NULL}, 0, 0, S_NULL, 0}, // S_PARTICLE
-
-	{SPR_SCOR, 0, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRA  - 100
-	{SPR_SCOR, 1, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRB  - 200
-	{SPR_SCOR, 2, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRC  - 500
-	{SPR_SCOR, 3, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRD  - 1000
-	{SPR_SCOR, 4, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRE  - 10000
-	{SPR_SCOR, 5, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRF  - 400 (mario mode)
-	{SPR_SCOR, 6, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRG  - 800 (mario mode)
-	{SPR_SCOR, 7, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRH  - 2000 (mario mode)
-	{SPR_SCOR, 8, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRI  - 4000 (mario mode)
-	{SPR_SCOR, 9, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRJ  - 8000 (mario mode)
-	{SPR_SCOR, 10, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRK - 1UP (mario mode)
-	{SPR_SCOR, 11, 32, {A_ScoreRise}, 0, 0, S_NULL, 0}, // S_SCRL - 10
+	{SPR_PRTL, 0, 2*TICRATE, NULL, 0, 0, S_NULL, 0}, // S_PARTICLE
+
+	{SPR_SCOR, 0, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRA  - 100
+	{SPR_SCOR, 1, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRB  - 200
+	{SPR_SCOR, 2, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRC  - 500
+	{SPR_SCOR, 3, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRD  - 1000
+	{SPR_SCOR, 4, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRE  - 10000
+	{SPR_SCOR, 5, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRF  - 400 (mario mode)
+	{SPR_SCOR, 6, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRG  - 800 (mario mode)
+	{SPR_SCOR, 7, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRH  - 2000 (mario mode)
+	{SPR_SCOR, 8, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRI  - 4000 (mario mode)
+	{SPR_SCOR, 9, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRJ  - 8000 (mario mode)
+	{SPR_SCOR, 10, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRK - 1UP (mario mode)
+	{SPR_SCOR, 11, 32, A_ScoreRise, 0, 0, S_NULL, 0}, // S_SCRL - 10
 
 	// Drowning Timer Numbers
-	{SPR_DRWN, 0, 40, {NULL}, 0, 0, S_NULL, 0}, // S_ZERO1
-	{SPR_DRWN, 1, 40, {NULL}, 0, 0, S_NULL, 0}, // S_ONE1
-	{SPR_DRWN, 2, 40, {NULL}, 0, 0, S_NULL, 0}, // S_TWO1
-	{SPR_DRWN, 3, 40, {NULL}, 0, 0, S_NULL, 0}, // S_THREE1
-	{SPR_DRWN, 4, 40, {NULL}, 0, 0, S_NULL, 0}, // S_FOUR1
-	{SPR_DRWN, 5, 40, {NULL}, 0, 0, S_NULL, 0}, // S_FIVE1
-
-	{SPR_DRWN,  6, 40, {NULL}, 0, 0, S_NULL, 0}, // S_ZERO2
-	{SPR_DRWN,  7, 40, {NULL}, 0, 0, S_NULL, 0}, // S_ONE2
-	{SPR_DRWN,  8, 40, {NULL}, 0, 0, S_NULL, 0}, // S_TWO2
-	{SPR_DRWN,  9, 40, {NULL}, 0, 0, S_NULL, 0}, // S_THREE2
-	{SPR_DRWN, 10, 40, {NULL}, 0, 0, S_NULL, 0}, // S_FOUR2
-	{SPR_DRWN, 11, 40, {NULL}, 0, 0, S_NULL, 0}, // S_FIVE2
+	{SPR_DRWN, 0, 40, NULL, 0, 0, S_NULL, 0}, // S_ZERO1
+	{SPR_DRWN, 1, 40, NULL, 0, 0, S_NULL, 0}, // S_ONE1
+	{SPR_DRWN, 2, 40, NULL, 0, 0, S_NULL, 0}, // S_TWO1
+	{SPR_DRWN, 3, 40, NULL, 0, 0, S_NULL, 0}, // S_THREE1
+	{SPR_DRWN, 4, 40, NULL, 0, 0, S_NULL, 0}, // S_FOUR1
+	{SPR_DRWN, 5, 40, NULL, 0, 0, S_NULL, 0}, // S_FIVE1
+
+	{SPR_DRWN,  6, 40, NULL, 0, 0, S_NULL, 0}, // S_ZERO2
+	{SPR_DRWN,  7, 40, NULL, 0, 0, S_NULL, 0}, // S_ONE2
+	{SPR_DRWN,  8, 40, NULL, 0, 0, S_NULL, 0}, // S_TWO2
+	{SPR_DRWN,  9, 40, NULL, 0, 0, S_NULL, 0}, // S_THREE2
+	{SPR_DRWN, 10, 40, NULL, 0, 0, S_NULL, 0}, // S_FOUR2
+	{SPR_DRWN, 11, 40, NULL, 0, 0, S_NULL, 0}, // S_FIVE2
 
 	// Flight indicator
-	{SPR_FLII, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 4, S_NULL, 0}, // S_FLIGHTINDICATOR
+	{SPR_FLII, FF_FULLBRIGHT|FF_ANIMATE|0, -1, NULL, 4, 4, S_NULL, 0}, // S_FLIGHTINDICATOR
 
-	{SPR_LCKN,   FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKON1
-	{SPR_LCKN, 1|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKON2
-	{SPR_LCKN, 2|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKON3
-	{SPR_LCKN, 3|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKON4
+	{SPR_LCKN,   FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0}, // S_LOCKON1
+	{SPR_LCKN, 1|FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0}, // S_LOCKON2
+	{SPR_LCKN, 2|FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0}, // S_LOCKON3
+	{SPR_LCKN, 3|FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0}, // S_LOCKON4
 
-	{SPR_LCKN,   FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKONINF1
-	{SPR_LCKN, 1|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKONINF2
-	{SPR_LCKN, 2|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKONINF3
-	{SPR_LCKN, 3|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LOCKONINF4
+	{SPR_LCKN,   FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_LOCKONINF1
+	{SPR_LCKN, 1|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_LOCKONINF2
+	{SPR_LCKN, 2|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_LOCKONINF3
+	{SPR_LCKN, 3|FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_LOCKONINF4
 
-	{SPR_TTAG, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_NULL, 0}, // S_TTAG
+	{SPR_TTAG, FF_FULLBRIGHT, 1, NULL, 0, 0, S_NULL, 0}, // S_TTAG
 
 	// CTF Sign
-	{SPR_GFLG, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_NULL, 0}, // S_GOTFLAG
+	{SPR_GFLG, FF_FULLBRIGHT, 1, NULL, 0, 0, S_NULL, 0}, // S_GOTFLAG
 
 	// Finish flag
-	{SPR_FNSF,    FF_TRANS30, -1, {NULL}, 0, 0, S_NULL, 0}, // S_FINISHFLAG
+	{SPR_FNSF,    FF_TRANS30, -1, NULL, 0, 0, S_NULL, 0}, // S_FINISHFLAG
 
-	{SPR_CORK,             0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_CORK
-	{SPR_LHRT, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LHRT
+	{SPR_CORK,             0, -1, NULL, 0, 0, S_NULL, 0}, // S_CORK
+	{SPR_LHRT, FF_FULLBRIGHT, -1, NULL, 0, 0, S_NULL, 0}, // S_LHRT
 
 	// Red Rings (thrown)
-	{SPR_RRNG, FF_FULLBRIGHT,   1, {A_ThrownRing}, 0, 0, S_RRNG2, 0}, // S_RRNG1
-	{SPR_RRNG, FF_FULLBRIGHT|1, 1, {A_ThrownRing}, 0, 0, S_RRNG3, 0}, // S_RRNG2
-	{SPR_RRNG, FF_FULLBRIGHT|2, 1, {A_ThrownRing}, 0, 0, S_RRNG4, 0}, // S_RRNG3
-	{SPR_RRNG, FF_FULLBRIGHT|3, 1, {A_ThrownRing}, 0, 0, S_RRNG5, 0}, // S_RRNG4
-	{SPR_RRNG, FF_FULLBRIGHT|4, 1, {A_ThrownRing}, 0, 0, S_RRNG6, 0}, // S_RRNG5
-	{SPR_RRNG, FF_FULLBRIGHT|5, 1, {A_ThrownRing}, 0, 0, S_RRNG7, 0}, // S_RRNG6
-	{SPR_RRNG, FF_FULLBRIGHT|6, 1, {A_ThrownRing}, 0, 0, S_RRNG1, 0}, // S_RRNG7
+	{SPR_RRNG, FF_FULLBRIGHT,   1, A_ThrownRing, 0, 0, S_RRNG2, 0}, // S_RRNG1
+	{SPR_RRNG, FF_FULLBRIGHT|1, 1, A_ThrownRing, 0, 0, S_RRNG3, 0}, // S_RRNG2
+	{SPR_RRNG, FF_FULLBRIGHT|2, 1, A_ThrownRing, 0, 0, S_RRNG4, 0}, // S_RRNG3
+	{SPR_RRNG, FF_FULLBRIGHT|3, 1, A_ThrownRing, 0, 0, S_RRNG5, 0}, // S_RRNG4
+	{SPR_RRNG, FF_FULLBRIGHT|4, 1, A_ThrownRing, 0, 0, S_RRNG6, 0}, // S_RRNG5
+	{SPR_RRNG, FF_FULLBRIGHT|5, 1, A_ThrownRing, 0, 0, S_RRNG7, 0}, // S_RRNG6
+	{SPR_RRNG, FF_FULLBRIGHT|6, 1, A_ThrownRing, 0, 0, S_RRNG1, 0}, // S_RRNG7
 
 	// Weapon Ring Ammo
-	{SPR_RNGB, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_BOUNCERINGAMMO, 0},    // S_BOUNCERINGAMMO
-	{SPR_RNGR, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_RAILRINGAMMO, 0},      // S_RAILRINGAMMO
-	{SPR_RNGI, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_INFINITYRINGAMMO, 0},  // S_INFINITYRINGAMMO
-	{SPR_RNGA, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_AUTOMATICRINGAMMO, 0}, // S_AUTOMATICRINGAMMO
-	{SPR_RNGE, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_EXPLOSIONRINGAMMO, 0}, // S_EXPLOSIONRINGAMMO
-	{SPR_RNGS, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_SCATTERRINGAMMO, 0},   // S_SCATTERRINGAMMO
-	{SPR_RNGG, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 34, 1, S_GRENADERINGAMMO, 0},   // S_GRENADERINGAMMO
+	{SPR_RNGB, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_BOUNCERINGAMMO, 0},    // S_BOUNCERINGAMMO
+	{SPR_RNGR, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_RAILRINGAMMO, 0},      // S_RAILRINGAMMO
+	{SPR_RNGI, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_INFINITYRINGAMMO, 0},  // S_INFINITYRINGAMMO
+	{SPR_RNGA, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_AUTOMATICRINGAMMO, 0}, // S_AUTOMATICRINGAMMO
+	{SPR_RNGE, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_EXPLOSIONRINGAMMO, 0}, // S_EXPLOSIONRINGAMMO
+	{SPR_RNGS, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_SCATTERRINGAMMO, 0},   // S_SCATTERRINGAMMO
+	{SPR_RNGG, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 34, 1, S_GRENADERINGAMMO, 0},   // S_GRENADERINGAMMO
 
 	// Bounce Ring Pickup
-	{SPR_PIKB, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_BOUNCEPICKUP, 0},  // S_BOUNCEPICKUP
+	{SPR_PIKB, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_BOUNCEPICKUP, 0},  // S_BOUNCEPICKUP
 
-	{SPR_PIKB,  0, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE2, 0}, // S_BOUNCEPICKUPFADE1
-	{SPR_PIKB,  2, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE3, 0}, // S_BOUNCEPICKUPFADE2
-	{SPR_PIKB,  4, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE4, 0}, // S_BOUNCEPICKUPFADE3
-	{SPR_PIKB,  6, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE5, 0}, // S_BOUNCEPICKUPFADE4
-	{SPR_PIKB,  8, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE6, 0}, // S_BOUNCEPICKUPFADE5
-	{SPR_PIKB, 10, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE7, 0}, // S_BOUNCEPICKUPFADE6
-	{SPR_PIKB, 12, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE8, 0}, // S_BOUNCEPICKUPFADE7
-	{SPR_PIKB, 14, 1, {NULL}, 0, 0, S_BOUNCEPICKUPFADE1, 0}, // S_BOUNCEPICKUPFADE8
+	{SPR_PIKB,  0, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE2, 0}, // S_BOUNCEPICKUPFADE1
+	{SPR_PIKB,  2, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE3, 0}, // S_BOUNCEPICKUPFADE2
+	{SPR_PIKB,  4, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE4, 0}, // S_BOUNCEPICKUPFADE3
+	{SPR_PIKB,  6, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE5, 0}, // S_BOUNCEPICKUPFADE4
+	{SPR_PIKB,  8, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE6, 0}, // S_BOUNCEPICKUPFADE5
+	{SPR_PIKB, 10, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE7, 0}, // S_BOUNCEPICKUPFADE6
+	{SPR_PIKB, 12, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE8, 0}, // S_BOUNCEPICKUPFADE7
+	{SPR_PIKB, 14, 1, NULL, 0, 0, S_BOUNCEPICKUPFADE1, 0}, // S_BOUNCEPICKUPFADE8
 
 	// Rail Ring Pickup
-	{SPR_PIKR, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_RAILPICKUP, 0},  // S_RAILPICKUP
+	{SPR_PIKR, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_RAILPICKUP, 0},  // S_RAILPICKUP
 
-	{SPR_PIKR,  0, 1, {NULL}, 0, 0, S_RAILPICKUPFADE2, 0}, // S_RAILPICKUPFADE1
-	{SPR_PIKR,  2, 1, {NULL}, 0, 0, S_RAILPICKUPFADE3, 0}, // S_RAILPICKUPFADE2
-	{SPR_PIKR,  4, 1, {NULL}, 0, 0, S_RAILPICKUPFADE4, 0}, // S_RAILPICKUPFADE3
-	{SPR_PIKR,  6, 1, {NULL}, 0, 0, S_RAILPICKUPFADE5, 0}, // S_RAILPICKUPFADE4
-	{SPR_PIKR,  8, 1, {NULL}, 0, 0, S_RAILPICKUPFADE6, 0}, // S_RAILPICKUPFADE5
-	{SPR_PIKR, 10, 1, {NULL}, 0, 0, S_RAILPICKUPFADE7, 0}, // S_RAILPICKUPFADE6
-	{SPR_PIKR, 12, 1, {NULL}, 0, 0, S_RAILPICKUPFADE8, 0}, // S_RAILPICKUPFADE7
-	{SPR_PIKR, 14, 1, {NULL}, 0, 0, S_RAILPICKUPFADE1, 0}, // S_RAILPICKUPFADE8
+	{SPR_PIKR,  0, 1, NULL, 0, 0, S_RAILPICKUPFADE2, 0}, // S_RAILPICKUPFADE1
+	{SPR_PIKR,  2, 1, NULL, 0, 0, S_RAILPICKUPFADE3, 0}, // S_RAILPICKUPFADE2
+	{SPR_PIKR,  4, 1, NULL, 0, 0, S_RAILPICKUPFADE4, 0}, // S_RAILPICKUPFADE3
+	{SPR_PIKR,  6, 1, NULL, 0, 0, S_RAILPICKUPFADE5, 0}, // S_RAILPICKUPFADE4
+	{SPR_PIKR,  8, 1, NULL, 0, 0, S_RAILPICKUPFADE6, 0}, // S_RAILPICKUPFADE5
+	{SPR_PIKR, 10, 1, NULL, 0, 0, S_RAILPICKUPFADE7, 0}, // S_RAILPICKUPFADE6
+	{SPR_PIKR, 12, 1, NULL, 0, 0, S_RAILPICKUPFADE8, 0}, // S_RAILPICKUPFADE7
+	{SPR_PIKR, 14, 1, NULL, 0, 0, S_RAILPICKUPFADE1, 0}, // S_RAILPICKUPFADE8
 
 	// Auto Ring Pickup
-	{SPR_PIKA, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_AUTOPICKUP, 0},  // S_AUTOPICKUP
+	{SPR_PIKA, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_AUTOPICKUP, 0},  // S_AUTOPICKUP
 
-	{SPR_PIKA,  0, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE2, 0}, // S_AUTOPICKUPFADE1
-	{SPR_PIKA,  2, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE3, 0}, // S_AUTOPICKUPFADE2
-	{SPR_PIKA,  4, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE4, 0}, // S_AUTOPICKUPFADE3
-	{SPR_PIKA,  6, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE5, 0}, // S_AUTOPICKUPFADE4
-	{SPR_PIKA,  8, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE6, 0}, // S_AUTOPICKUPFADE5
-	{SPR_PIKA, 10, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE7, 0}, // S_AUTOPICKUPFADE6
-	{SPR_PIKA, 12, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE8, 0}, // S_AUTOPICKUPFADE7
-	{SPR_PIKA, 14, 1, {NULL}, 0, 0, S_AUTOPICKUPFADE1, 0}, // S_AUTOPICKUPFADE8
+	{SPR_PIKA,  0, 1, NULL, 0, 0, S_AUTOPICKUPFADE2, 0}, // S_AUTOPICKUPFADE1
+	{SPR_PIKA,  2, 1, NULL, 0, 0, S_AUTOPICKUPFADE3, 0}, // S_AUTOPICKUPFADE2
+	{SPR_PIKA,  4, 1, NULL, 0, 0, S_AUTOPICKUPFADE4, 0}, // S_AUTOPICKUPFADE3
+	{SPR_PIKA,  6, 1, NULL, 0, 0, S_AUTOPICKUPFADE5, 0}, // S_AUTOPICKUPFADE4
+	{SPR_PIKA,  8, 1, NULL, 0, 0, S_AUTOPICKUPFADE6, 0}, // S_AUTOPICKUPFADE5
+	{SPR_PIKA, 10, 1, NULL, 0, 0, S_AUTOPICKUPFADE7, 0}, // S_AUTOPICKUPFADE6
+	{SPR_PIKA, 12, 1, NULL, 0, 0, S_AUTOPICKUPFADE8, 0}, // S_AUTOPICKUPFADE7
+	{SPR_PIKA, 14, 1, NULL, 0, 0, S_AUTOPICKUPFADE1, 0}, // S_AUTOPICKUPFADE8
 
 	// Explode Ring Pickup
-	{SPR_PIKE, FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_EXPLODEPICKUP, 0},  // S_EXPLODEPICKUP
+	{SPR_PIKE, FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_EXPLODEPICKUP, 0},  // S_EXPLODEPICKUP
 
-	{SPR_PIKE,  0, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE2, 0}, // S_EXPLODEPICKUPFADE1
-	{SPR_PIKE,  2, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE3, 0}, // S_EXPLODEPICKUPFADE2
-	{SPR_PIKE,  4, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE4, 0}, // S_EXPLODEPICKUPFADE3
-	{SPR_PIKE,  6, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE5, 0}, // S_EXPLODEPICKUPFADE4
-	{SPR_PIKE,  8, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE6, 0}, // S_EXPLODEPICKUPFADE5
-	{SPR_PIKE, 10, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE7, 0}, // S_EXPLODEPICKUPFADE6
-	{SPR_PIKE, 12, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE8, 0}, // S_EXPLODEPICKUPFADE7
-	{SPR_PIKE, 14, 1, {NULL}, 0, 0, S_EXPLODEPICKUPFADE1, 0}, // S_EXPLODEPICKUPFADE8
+	{SPR_PIKE,  0, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE2, 0}, // S_EXPLODEPICKUPFADE1
+	{SPR_PIKE,  2, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE3, 0}, // S_EXPLODEPICKUPFADE2
+	{SPR_PIKE,  4, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE4, 0}, // S_EXPLODEPICKUPFADE3
+	{SPR_PIKE,  6, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE5, 0}, // S_EXPLODEPICKUPFADE4
+	{SPR_PIKE,  8, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE6, 0}, // S_EXPLODEPICKUPFADE5
+	{SPR_PIKE, 10, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE7, 0}, // S_EXPLODEPICKUPFADE6
+	{SPR_PIKE, 12, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE8, 0}, // S_EXPLODEPICKUPFADE7
+	{SPR_PIKE, 14, 1, NULL, 0, 0, S_EXPLODEPICKUPFADE1, 0}, // S_EXPLODEPICKUPFADE8
 
 	// Scatter Ring Pickup
-	{SPR_PIKS,  FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_SCATTERPICKUP, 0},  // S_SCATTERPICKUP
+	{SPR_PIKS,  FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_SCATTERPICKUP, 0},  // S_SCATTERPICKUP
 
-	{SPR_PIKS,  0, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE2, 0}, // S_SCATTERPICKUPFADE1
-	{SPR_PIKS,  2, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE3, 0}, // S_SCATTERPICKUPFADE2
-	{SPR_PIKS,  4, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE4, 0}, // S_SCATTERPICKUPFADE3
-	{SPR_PIKS,  6, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE5, 0}, // S_SCATTERPICKUPFADE4
-	{SPR_PIKS,  8, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE6, 0}, // S_SCATTERPICKUPFADE5
-	{SPR_PIKS, 10, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE7, 0}, // S_SCATTERPICKUPFADE6
-	{SPR_PIKS, 12, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE8, 0}, // S_SCATTERPICKUPFADE7
-	{SPR_PIKS, 14, 1, {NULL}, 0, 0, S_SCATTERPICKUPFADE1, 0}, // S_SCATTERPICKUPFADE8
+	{SPR_PIKS,  0, 1, NULL, 0, 0, S_SCATTERPICKUPFADE2, 0}, // S_SCATTERPICKUPFADE1
+	{SPR_PIKS,  2, 1, NULL, 0, 0, S_SCATTERPICKUPFADE3, 0}, // S_SCATTERPICKUPFADE2
+	{SPR_PIKS,  4, 1, NULL, 0, 0, S_SCATTERPICKUPFADE4, 0}, // S_SCATTERPICKUPFADE3
+	{SPR_PIKS,  6, 1, NULL, 0, 0, S_SCATTERPICKUPFADE5, 0}, // S_SCATTERPICKUPFADE4
+	{SPR_PIKS,  8, 1, NULL, 0, 0, S_SCATTERPICKUPFADE6, 0}, // S_SCATTERPICKUPFADE5
+	{SPR_PIKS, 10, 1, NULL, 0, 0, S_SCATTERPICKUPFADE7, 0}, // S_SCATTERPICKUPFADE6
+	{SPR_PIKS, 12, 1, NULL, 0, 0, S_SCATTERPICKUPFADE8, 0}, // S_SCATTERPICKUPFADE7
+	{SPR_PIKS, 14, 1, NULL, 0, 0, S_SCATTERPICKUPFADE1, 0}, // S_SCATTERPICKUPFADE8
 
 	// Grenade Ring Pickup
-	{SPR_PIKG,  FF_ANIMATE|FF_GLOBALANIM, -1, {NULL}, 15, 1, S_GRENADEPICKUP, 0},  // S_GRENADEPICKUP
+	{SPR_PIKG,  FF_ANIMATE|FF_GLOBALANIM, -1, NULL, 15, 1, S_GRENADEPICKUP, 0},  // S_GRENADEPICKUP
 
-	{SPR_PIKG,  0, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE2, 0}, // S_GRENADEPICKUPFADE1
-	{SPR_PIKG,  2, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE3, 0}, // S_GRENADEPICKUPFADE2
-	{SPR_PIKG,  4, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE4, 0}, // S_GRENADEPICKUPFADE3
-	{SPR_PIKG,  6, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE5, 0}, // S_GRENADEPICKUPFADE4
-	{SPR_PIKG,  8, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE6, 0}, // S_GRENADEPICKUPFADE5
-	{SPR_PIKG, 10, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE7, 0}, // S_GRENADEPICKUPFADE6
-	{SPR_PIKG, 12, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE8, 0}, // S_GRENADEPICKUPFADE7
-	{SPR_PIKG, 14, 1, {NULL}, 0, 0, S_GRENADEPICKUPFADE1, 0}, // S_GRENADEPICKUPFADE8
+	{SPR_PIKG,  0, 1, NULL, 0, 0, S_GRENADEPICKUPFADE2, 0}, // S_GRENADEPICKUPFADE1
+	{SPR_PIKG,  2, 1, NULL, 0, 0, S_GRENADEPICKUPFADE3, 0}, // S_GRENADEPICKUPFADE2
+	{SPR_PIKG,  4, 1, NULL, 0, 0, S_GRENADEPICKUPFADE4, 0}, // S_GRENADEPICKUPFADE3
+	{SPR_PIKG,  6, 1, NULL, 0, 0, S_GRENADEPICKUPFADE5, 0}, // S_GRENADEPICKUPFADE4
+	{SPR_PIKG,  8, 1, NULL, 0, 0, S_GRENADEPICKUPFADE6, 0}, // S_GRENADEPICKUPFADE5
+	{SPR_PIKG, 10, 1, NULL, 0, 0, S_GRENADEPICKUPFADE7, 0}, // S_GRENADEPICKUPFADE6
+	{SPR_PIKG, 12, 1, NULL, 0, 0, S_GRENADEPICKUPFADE8, 0}, // S_GRENADEPICKUPFADE7
+	{SPR_PIKG, 14, 1, NULL, 0, 0, S_GRENADEPICKUPFADE1, 0}, // S_GRENADEPICKUPFADE8
 
 	// Thrown Weapon Rings
-	{SPR_RNGB, FF_FULLBRIGHT   , 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE2, 0}, // S_THROWNBOUNCE1
-	{SPR_RNGB, FF_FULLBRIGHT| 5, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE3, 0}, // S_THROWNBOUNCE2
-	{SPR_RNGB, FF_FULLBRIGHT|10, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE4, 0}, // S_THROWNBOUNCE3
-	{SPR_RNGB, FF_FULLBRIGHT|15, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE5, 0}, // S_THROWNBOUNCE4
-	{SPR_RNGB, FF_FULLBRIGHT|20, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE6, 0}, // S_THROWNBOUNCE5
-	{SPR_RNGB, FF_FULLBRIGHT|25, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE7, 0}, // S_THROWNBOUNCE6
-	{SPR_RNGB, FF_FULLBRIGHT|30, 1, {A_ThrownRing}, 0, 0, S_THROWNBOUNCE1, 0}, // S_THROWNBOUNCE7
-
-	{SPR_RNGI, FF_FULLBRIGHT   , 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY2, 0}, // S_THROWNINFINITY1
-	{SPR_RNGI, FF_FULLBRIGHT| 5, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY3, 0}, // S_THROWNINFINITY2
-	{SPR_RNGI, FF_FULLBRIGHT|10, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY4, 0}, // S_THROWNINFINITY3
-	{SPR_RNGI, FF_FULLBRIGHT|15, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY5, 0}, // S_THROWNINFINITY4
-	{SPR_RNGI, FF_FULLBRIGHT|20, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY6, 0}, // S_THROWNINFINITY5
-	{SPR_RNGI, FF_FULLBRIGHT|25, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY7, 0}, // S_THROWNINFINITY6
-	{SPR_RNGI, FF_FULLBRIGHT|30, 1, {A_ThrownRing}, 0, 0, S_THROWNINFINITY1, 0}, // S_THROWNINFINITY7
-
-	{SPR_TAUT, FF_FULLBRIGHT  , 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC2, 0}, // S_THROWNAUTOMATIC1
-	{SPR_TAUT, FF_FULLBRIGHT|1, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC3, 0}, // S_THROWNAUTOMATIC2
-	{SPR_TAUT, FF_FULLBRIGHT|2, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC4, 0}, // S_THROWNAUTOMATIC3
-	{SPR_TAUT, FF_FULLBRIGHT|3, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC5, 0}, // S_THROWNAUTOMATIC4
-	{SPR_TAUT, FF_FULLBRIGHT|4, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC6, 0}, // S_THROWNAUTOMATIC5
-	{SPR_TAUT, FF_FULLBRIGHT|5, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC7, 0}, // S_THROWNAUTOMATIC6
-	{SPR_TAUT, FF_FULLBRIGHT|6, 1, {A_ThrownRing}, 0, 0, S_THROWNAUTOMATIC1, 0}, // S_THROWNAUTOMATIC7
-
-	{SPR_RNGE, FF_FULLBRIGHT   , 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION2, 0}, // S_THROWNEXPLOSION1
-	{SPR_RNGE, FF_FULLBRIGHT| 5, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION3, 0}, // S_THROWNEXPLOSION2
-	{SPR_RNGE, FF_FULLBRIGHT|10, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION4, 0}, // S_THROWNEXPLOSION3
-	{SPR_RNGE, FF_FULLBRIGHT|15, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION5, 0}, // S_THROWNEXPLOSION4
-	{SPR_RNGE, FF_FULLBRIGHT|20, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION6, 0}, // S_THROWNEXPLOSION5
-	{SPR_RNGE, FF_FULLBRIGHT|25, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION7, 0}, // S_THROWNEXPLOSION6
-	{SPR_RNGE, FF_FULLBRIGHT|30, 1, {A_ThrownRing}, 0, 0, S_THROWNEXPLOSION1, 0}, // S_THROWNEXPLOSION7
-
-	{SPR_TGRE, FF_FULLBRIGHT   , 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE2, 0},  // S_THROWNGRENADE1
-	{SPR_TGRE, FF_FULLBRIGHT| 1, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE3, 0},  // S_THROWNGRENADE2
-	{SPR_TGRE, FF_FULLBRIGHT| 2, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE4, 0},  // S_THROWNGRENADE3
-	{SPR_TGRE, FF_FULLBRIGHT| 3, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE5, 0},  // S_THROWNGRENADE4
-	{SPR_TGRE, FF_FULLBRIGHT| 4, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE6, 0},  // S_THROWNGRENADE5
-	{SPR_TGRE, FF_FULLBRIGHT| 5, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE7, 0},  // S_THROWNGRENADE6
-	{SPR_TGRE, FF_FULLBRIGHT| 6, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE8, 0},  // S_THROWNGRENADE7
-	{SPR_TGRE, FF_FULLBRIGHT| 7, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE9, 0},  // S_THROWNGRENADE8
-	{SPR_TGRE, FF_FULLBRIGHT| 8, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE10, 0}, // S_THROWNGRENADE9
-	{SPR_TGRE, FF_FULLBRIGHT| 9, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE11, 0}, // S_THROWNGRENADE10
-	{SPR_TGRE, FF_FULLBRIGHT|10, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE12, 0}, // S_THROWNGRENADE11
-	{SPR_TGRE, FF_FULLBRIGHT|11, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE13, 0}, // S_THROWNGRENADE12
-	{SPR_TGRE, FF_FULLBRIGHT|12, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE14, 0}, // S_THROWNGRENADE13
-	{SPR_TGRE, FF_FULLBRIGHT|13, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE15, 0}, // S_THROWNGRENADE14
-	{SPR_TGRE, FF_FULLBRIGHT|14, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE16, 0}, // S_THROWNGRENADE15
-	{SPR_TGRE, FF_FULLBRIGHT|15, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE17, 0}, // S_THROWNGRENADE16
-	{SPR_TGRE, FF_FULLBRIGHT|16, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE18, 0}, // S_THROWNGRENADE17
-	{SPR_TGRE, FF_FULLBRIGHT|17, 1, {A_ThrownRing}, 0, 0, S_THROWNGRENADE1, 0},  // S_THROWNGRENADE18
-
-	{SPR_TSCR, FF_FULLBRIGHT, 1, {A_ThrownRing}, 0, 0, S_THROWNSCATTER, 0}, // S_THROWNSCATTER
-
-	{SPR_NULL, 0, 1, {A_RingExplode}, 0, 0, S_XPLD1, 0}, // S_RINGEXPLODE
+	{SPR_RNGB, FF_FULLBRIGHT   , 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE2, 0}, // S_THROWNBOUNCE1
+	{SPR_RNGB, FF_FULLBRIGHT| 5, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE3, 0}, // S_THROWNBOUNCE2
+	{SPR_RNGB, FF_FULLBRIGHT|10, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE4, 0}, // S_THROWNBOUNCE3
+	{SPR_RNGB, FF_FULLBRIGHT|15, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE5, 0}, // S_THROWNBOUNCE4
+	{SPR_RNGB, FF_FULLBRIGHT|20, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE6, 0}, // S_THROWNBOUNCE5
+	{SPR_RNGB, FF_FULLBRIGHT|25, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE7, 0}, // S_THROWNBOUNCE6
+	{SPR_RNGB, FF_FULLBRIGHT|30, 1, A_ThrownRing, 0, 0, S_THROWNBOUNCE1, 0}, // S_THROWNBOUNCE7
+
+	{SPR_RNGI, FF_FULLBRIGHT   , 1, A_ThrownRing, 0, 0, S_THROWNINFINITY2, 0}, // S_THROWNINFINITY1
+	{SPR_RNGI, FF_FULLBRIGHT| 5, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY3, 0}, // S_THROWNINFINITY2
+	{SPR_RNGI, FF_FULLBRIGHT|10, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY4, 0}, // S_THROWNINFINITY3
+	{SPR_RNGI, FF_FULLBRIGHT|15, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY5, 0}, // S_THROWNINFINITY4
+	{SPR_RNGI, FF_FULLBRIGHT|20, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY6, 0}, // S_THROWNINFINITY5
+	{SPR_RNGI, FF_FULLBRIGHT|25, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY7, 0}, // S_THROWNINFINITY6
+	{SPR_RNGI, FF_FULLBRIGHT|30, 1, A_ThrownRing, 0, 0, S_THROWNINFINITY1, 0}, // S_THROWNINFINITY7
+
+	{SPR_TAUT, FF_FULLBRIGHT  , 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC2, 0}, // S_THROWNAUTOMATIC1
+	{SPR_TAUT, FF_FULLBRIGHT|1, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC3, 0}, // S_THROWNAUTOMATIC2
+	{SPR_TAUT, FF_FULLBRIGHT|2, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC4, 0}, // S_THROWNAUTOMATIC3
+	{SPR_TAUT, FF_FULLBRIGHT|3, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC5, 0}, // S_THROWNAUTOMATIC4
+	{SPR_TAUT, FF_FULLBRIGHT|4, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC6, 0}, // S_THROWNAUTOMATIC5
+	{SPR_TAUT, FF_FULLBRIGHT|5, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC7, 0}, // S_THROWNAUTOMATIC6
+	{SPR_TAUT, FF_FULLBRIGHT|6, 1, A_ThrownRing, 0, 0, S_THROWNAUTOMATIC1, 0}, // S_THROWNAUTOMATIC7
+
+	{SPR_RNGE, FF_FULLBRIGHT   , 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION2, 0}, // S_THROWNEXPLOSION1
+	{SPR_RNGE, FF_FULLBRIGHT| 5, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION3, 0}, // S_THROWNEXPLOSION2
+	{SPR_RNGE, FF_FULLBRIGHT|10, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION4, 0}, // S_THROWNEXPLOSION3
+	{SPR_RNGE, FF_FULLBRIGHT|15, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION5, 0}, // S_THROWNEXPLOSION4
+	{SPR_RNGE, FF_FULLBRIGHT|20, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION6, 0}, // S_THROWNEXPLOSION5
+	{SPR_RNGE, FF_FULLBRIGHT|25, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION7, 0}, // S_THROWNEXPLOSION6
+	{SPR_RNGE, FF_FULLBRIGHT|30, 1, A_ThrownRing, 0, 0, S_THROWNEXPLOSION1, 0}, // S_THROWNEXPLOSION7
+
+	{SPR_TGRE, FF_FULLBRIGHT   , 1, A_ThrownRing, 0, 0, S_THROWNGRENADE2, 0},  // S_THROWNGRENADE1
+	{SPR_TGRE, FF_FULLBRIGHT| 1, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE3, 0},  // S_THROWNGRENADE2
+	{SPR_TGRE, FF_FULLBRIGHT| 2, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE4, 0},  // S_THROWNGRENADE3
+	{SPR_TGRE, FF_FULLBRIGHT| 3, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE5, 0},  // S_THROWNGRENADE4
+	{SPR_TGRE, FF_FULLBRIGHT| 4, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE6, 0},  // S_THROWNGRENADE5
+	{SPR_TGRE, FF_FULLBRIGHT| 5, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE7, 0},  // S_THROWNGRENADE6
+	{SPR_TGRE, FF_FULLBRIGHT| 6, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE8, 0},  // S_THROWNGRENADE7
+	{SPR_TGRE, FF_FULLBRIGHT| 7, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE9, 0},  // S_THROWNGRENADE8
+	{SPR_TGRE, FF_FULLBRIGHT| 8, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE10, 0}, // S_THROWNGRENADE9
+	{SPR_TGRE, FF_FULLBRIGHT| 9, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE11, 0}, // S_THROWNGRENADE10
+	{SPR_TGRE, FF_FULLBRIGHT|10, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE12, 0}, // S_THROWNGRENADE11
+	{SPR_TGRE, FF_FULLBRIGHT|11, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE13, 0}, // S_THROWNGRENADE12
+	{SPR_TGRE, FF_FULLBRIGHT|12, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE14, 0}, // S_THROWNGRENADE13
+	{SPR_TGRE, FF_FULLBRIGHT|13, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE15, 0}, // S_THROWNGRENADE14
+	{SPR_TGRE, FF_FULLBRIGHT|14, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE16, 0}, // S_THROWNGRENADE15
+	{SPR_TGRE, FF_FULLBRIGHT|15, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE17, 0}, // S_THROWNGRENADE16
+	{SPR_TGRE, FF_FULLBRIGHT|16, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE18, 0}, // S_THROWNGRENADE17
+	{SPR_TGRE, FF_FULLBRIGHT|17, 1, A_ThrownRing, 0, 0, S_THROWNGRENADE1, 0},  // S_THROWNGRENADE18
+
+	{SPR_TSCR, FF_FULLBRIGHT, 1, A_ThrownRing, 0, 0, S_THROWNSCATTER, 0}, // S_THROWNSCATTER
+
+	{SPR_NULL, 0, 1, A_RingExplode, 0, 0, S_XPLD1, 0}, // S_RINGEXPLODE
 
 	// Coin
-	{SPR_COIN, FF_FULLBRIGHT,   5, {NULL}, 0, 0, S_COIN2, 0}, // S_COIN1
-	{SPR_COIN, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_COIN3, 0}, // S_COIN2
-	{SPR_COIN, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_COIN1, 0}, // S_COIN3
+	{SPR_COIN, FF_FULLBRIGHT,   5, NULL, 0, 0, S_COIN2, 0}, // S_COIN1
+	{SPR_COIN, FF_FULLBRIGHT|1, 5, NULL, 0, 0, S_COIN3, 0}, // S_COIN2
+	{SPR_COIN, FF_FULLBRIGHT|2, 5, NULL, 0, 0, S_COIN1, 0}, // S_COIN3
 
 	// Coin Sparkle
-	{SPR_CPRK, FF_FULLBRIGHT,   5, {NULL}, 0, 0, S_COINSPARKLE2, 0}, // S_COINSPARKLE1
-	{SPR_CPRK, FF_FULLBRIGHT|1, 5, {NULL}, 0, 0, S_COINSPARKLE3, 0}, // S_COINSPARKLE2
-	{SPR_CPRK, FF_FULLBRIGHT|2, 5, {NULL}, 0, 0, S_COINSPARKLE4, 0}, // S_COINSPARKLE3
-	{SPR_CPRK, FF_FULLBRIGHT|3, 5, {NULL}, 0, 0, S_NULL, 0},         // S_COINSPARKLE4
+	{SPR_CPRK, FF_FULLBRIGHT,   5, NULL, 0, 0, S_COINSPARKLE2, 0}, // S_COINSPARKLE1
+	{SPR_CPRK, FF_FULLBRIGHT|1, 5, NULL, 0, 0, S_COINSPARKLE3, 0}, // S_COINSPARKLE2
+	{SPR_CPRK, FF_FULLBRIGHT|2, 5, NULL, 0, 0, S_COINSPARKLE4, 0}, // S_COINSPARKLE3
+	{SPR_CPRK, FF_FULLBRIGHT|3, 5, NULL, 0, 0, S_NULL, 0},         // S_COINSPARKLE4
 
 	// Goomba
-	{SPR_GOOM, 0, 6, {A_Look}, 0, 0, S_GOOMBA1B, 0}, // S_GOOMBA1
-	{SPR_GOOM, 1, 6, {A_Look}, 0, 0, S_GOOMBA1, 0},  // S_GOOMBA1B
-	{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA3, 0}, // S_GOOMBA2
-	{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA4, 0}, // S_GOOMBA3
-	{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA5, 0}, // S_GOOMBA4
-	{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA6, 0}, // S_GOOMBA5
-	{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA7, 0}, // S_GOOMBA6
-	{SPR_GOOM, 0, 3, {A_Chase}, 0, 0, S_GOOMBA8, 0}, // S_GOOMBA7
-	{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA9, 0}, // S_GOOMBA8
-	{SPR_GOOM, 1, 3, {A_Chase}, 0, 0, S_GOOMBA2, 0}, // S_GOOMBA9
-	{SPR_GOOM, 2, 16, {A_Scream}, 0, 0, S_NULL, 0},  // S_GOOMBA_DEAD
+	{SPR_GOOM, 0, 6, A_Look, 0, 0, S_GOOMBA1B, 0}, // S_GOOMBA1
+	{SPR_GOOM, 1, 6, A_Look, 0, 0, S_GOOMBA1, 0},  // S_GOOMBA1B
+	{SPR_GOOM, 0, 3, A_Chase, 0, 0, S_GOOMBA3, 0}, // S_GOOMBA2
+	{SPR_GOOM, 0, 3, A_Chase, 0, 0, S_GOOMBA4, 0}, // S_GOOMBA3
+	{SPR_GOOM, 1, 3, A_Chase, 0, 0, S_GOOMBA5, 0}, // S_GOOMBA4
+	{SPR_GOOM, 1, 3, A_Chase, 0, 0, S_GOOMBA6, 0}, // S_GOOMBA5
+	{SPR_GOOM, 0, 3, A_Chase, 0, 0, S_GOOMBA7, 0}, // S_GOOMBA6
+	{SPR_GOOM, 0, 3, A_Chase, 0, 0, S_GOOMBA8, 0}, // S_GOOMBA7
+	{SPR_GOOM, 1, 3, A_Chase, 0, 0, S_GOOMBA9, 0}, // S_GOOMBA8
+	{SPR_GOOM, 1, 3, A_Chase, 0, 0, S_GOOMBA2, 0}, // S_GOOMBA9
+	{SPR_GOOM, 2, 16, A_Scream, 0, 0, S_NULL, 0},  // S_GOOMBA_DEAD
 
 	// Blue Goomba
-	{SPR_BGOM, 0, 6, {A_Look}, 0, 0, S_BLUEGOOMBA1B, 0}, // S_BLUEGOOMBA1
-	{SPR_BGOM, 1, 6, {A_Look}, 0, 0, S_BLUEGOOMBA1, 0},  // S_BLUEGOOMBA1B
-	{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA3, 0}, // S_BLUEGOOMBA2
-	{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA4, 0}, // S_BLUEGOOMBA3
-	{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA5, 0}, // S_BLUEGOOMBA4
-	{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA6, 0}, // S_BLUEGOOMBA5
-	{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA7, 0}, // S_BLUEGOOMBA6
-	{SPR_BGOM, 0, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA8, 0}, // S_BLUEGOOMBA7
-	{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA9, 0}, // S_BLUEGOOMBA8
-	{SPR_BGOM, 1, 3, {A_Chase}, 0, 0, S_BLUEGOOMBA2, 0}, // S_BLUEGOOMBA9
-	{SPR_BGOM, 2, 16, {A_Scream}, 0, 0, S_NULL, 0},      // S_BLUEGOOMBA_DEAD
+	{SPR_BGOM, 0, 6, A_Look, 0, 0, S_BLUEGOOMBA1B, 0}, // S_BLUEGOOMBA1
+	{SPR_BGOM, 1, 6, A_Look, 0, 0, S_BLUEGOOMBA1, 0},  // S_BLUEGOOMBA1B
+	{SPR_BGOM, 0, 3, A_Chase, 0, 0, S_BLUEGOOMBA3, 0}, // S_BLUEGOOMBA2
+	{SPR_BGOM, 0, 3, A_Chase, 0, 0, S_BLUEGOOMBA4, 0}, // S_BLUEGOOMBA3
+	{SPR_BGOM, 1, 3, A_Chase, 0, 0, S_BLUEGOOMBA5, 0}, // S_BLUEGOOMBA4
+	{SPR_BGOM, 1, 3, A_Chase, 0, 0, S_BLUEGOOMBA6, 0}, // S_BLUEGOOMBA5
+	{SPR_BGOM, 0, 3, A_Chase, 0, 0, S_BLUEGOOMBA7, 0}, // S_BLUEGOOMBA6
+	{SPR_BGOM, 0, 3, A_Chase, 0, 0, S_BLUEGOOMBA8, 0}, // S_BLUEGOOMBA7
+	{SPR_BGOM, 1, 3, A_Chase, 0, 0, S_BLUEGOOMBA9, 0}, // S_BLUEGOOMBA8
+	{SPR_BGOM, 1, 3, A_Chase, 0, 0, S_BLUEGOOMBA2, 0}, // S_BLUEGOOMBA9
+	{SPR_BGOM, 2, 16, A_Scream, 0, 0, S_NULL, 0},      // S_BLUEGOOMBA_DEAD
 
 	// Fire Flower
-	{SPR_FFWR, 0, 3, {NULL}, 0, 0, S_FIREFLOWER2, 0}, // S_FIREFLOWER1
-	{SPR_FFWR, 1, 3, {NULL}, 0, 0, S_FIREFLOWER3, 0}, // S_FIREFLOWER2
-	{SPR_FFWR, 2, 3, {NULL}, 0, 0, S_FIREFLOWER4, 0}, // S_FIREFLOWER3
-	{SPR_FFWR, 3, 3, {NULL}, 0, 0, S_FIREFLOWER1, 0}, // S_FIREFLOWER4
+	{SPR_FFWR, 0, 3, NULL, 0, 0, S_FIREFLOWER2, 0}, // S_FIREFLOWER1
+	{SPR_FFWR, 1, 3, NULL, 0, 0, S_FIREFLOWER3, 0}, // S_FIREFLOWER2
+	{SPR_FFWR, 2, 3, NULL, 0, 0, S_FIREFLOWER4, 0}, // S_FIREFLOWER3
+	{SPR_FFWR, 3, 3, NULL, 0, 0, S_FIREFLOWER1, 0}, // S_FIREFLOWER4
 
 	// Thrown Mario Fireball
-	{SPR_FBLL, FF_FULLBRIGHT,   1, {A_SpawnObjectRelative}, 0, MT_FIREBALLTRAIL, S_FIREBALL, 0},   // S_FIREBALL
-	{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 1, {A_SetScale}, FRACUNIT*3/4, 0, S_FIREBALLTRAIL2, 0}, // S_FIREBALLTRAIL1
-	{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 8, {A_SetScale}, FRACUNIT/6, 1, S_NULL, 0},             // S_FIREBALLTRAIL2
+	{SPR_FBLL, FF_FULLBRIGHT,   1, A_SpawnObjectRelative, 0, MT_FIREBALLTRAIL, S_FIREBALL, 0},   // S_FIREBALL
+	{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 1, A_SetScale, FRACUNIT*3/4, 0, S_FIREBALLTRAIL2, 0}, // S_FIREBALLTRAIL1
+	{SPR_FBLL, 1|FF_FULLBRIGHT|FF_TRANS50, 8, A_SetScale, FRACUNIT/6, 1, S_NULL, 0},             // S_FIREBALLTRAIL2
 
 	// Turtle Shell
-	{SPR_SHLL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SHELL
+	{SPR_SHLL, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_SHELL
 
 	// Puma (Mario fireball)
-	{SPR_PUMA, FF_FULLBRIGHT|2, 1, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_START2, 0},   // S_PUMA_START1
-	{SPR_PUMA, FF_FULLBRIGHT|2, 1, {A_PlaySound}, sfx_s3k70, 1 + (1<<16), S_PUMA_UP1, 0},   // S_PUMA_START2
-	{SPR_PUMA, FF_FULLBRIGHT  , 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_UP2, 0},   // S_PUMA_UP1
-	{SPR_PUMA, FF_FULLBRIGHT|1, 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_UP3, 0},   // S_PUMA_UP2
-	{SPR_PUMA, FF_FULLBRIGHT|2, 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_UP1, 0},   // S_PUMA_UP3
-	{SPR_PUMA, FF_FULLBRIGHT|3, 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_DOWN2, 0}, // S_PUMA_DOWN1
-	{SPR_PUMA, FF_FULLBRIGHT|4, 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_DOWN3, 0}, // S_PUMA_DOWN2
-	{SPR_PUMA, FF_FULLBRIGHT|5, 2, {A_FishJump}, 0, MT_PUMATRAIL, S_PUMA_DOWN1, 0}, // S_PUMA_DOWN3
-
-	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS20|6, 4,       {NULL},        0, 0, S_PUMATRAIL2, 0},   // S_PUMATRAIL1
-	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS40|6, 5, {A_SetScale}, FRACUNIT, 1, S_PUMATRAIL3, 0},   // S_PUMATRAIL2
-	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS50|7, 4,       {NULL},        0, 0, S_PUMATRAIL4, 0},   // S_PUMATRAIL3
-	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS60|8, 3,       {NULL},        0, 0, S_NULL, 0},         // S_PUMATRAIL4
+	{SPR_PUMA, FF_FULLBRIGHT|2, 1, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_START2, 0},   // S_PUMA_START1
+	{SPR_PUMA, FF_FULLBRIGHT|2, 1, A_PlaySound, sfx_s3k70, 1 + (1<<16), S_PUMA_UP1, 0},   // S_PUMA_START2
+	{SPR_PUMA, FF_FULLBRIGHT  , 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_UP2, 0},   // S_PUMA_UP1
+	{SPR_PUMA, FF_FULLBRIGHT|1, 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_UP3, 0},   // S_PUMA_UP2
+	{SPR_PUMA, FF_FULLBRIGHT|2, 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_UP1, 0},   // S_PUMA_UP3
+	{SPR_PUMA, FF_FULLBRIGHT|3, 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_DOWN2, 0}, // S_PUMA_DOWN1
+	{SPR_PUMA, FF_FULLBRIGHT|4, 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_DOWN3, 0}, // S_PUMA_DOWN2
+	{SPR_PUMA, FF_FULLBRIGHT|5, 2, A_FishJump, 0, MT_PUMATRAIL, S_PUMA_DOWN1, 0}, // S_PUMA_DOWN3
+
+	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS20|6, 4,       NULL,        0, 0, S_PUMATRAIL2, 0},   // S_PUMATRAIL1
+	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS40|6, 5, A_SetScale, FRACUNIT, 1, S_PUMATRAIL3, 0},   // S_PUMATRAIL2
+	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS50|7, 4,       NULL,        0, 0, S_PUMATRAIL4, 0},   // S_PUMATRAIL3
+	{SPR_PUMA, FF_FULLBRIGHT|FF_TRANS60|8, 3,       NULL,        0, 0, S_NULL, 0},         // S_PUMATRAIL4
 
 	// Hammer
-	{SPR_HAMM, FF_ANIMATE, -1, {NULL}, 3, 3, S_NULL, 0}, // S_HAMMER
+	{SPR_HAMM, FF_ANIMATE, -1, NULL, 3, 3, S_NULL, 0}, // S_HAMMER
 
 	// Koopa
-	{SPR_KOOP, 0, -1, {NULL}, 0, 0, S_NULL, 0},   // S_KOOPA1
-	{SPR_KOOP, 1, 24, {NULL}, 0, 0, S_KOOPA1, 0}, // S_KOOPA2
+	{SPR_KOOP, 0, -1, NULL, 0, 0, S_NULL, 0},   // S_KOOPA1
+	{SPR_KOOP, 1, 24, NULL, 0, 0, S_KOOPA1, 0}, // S_KOOPA2
 
-	{SPR_BFLM, 0, 3,{NULL}, 0, 0, S_KOOPAFLAME2, 0}, // S_KOOPAFLAME1
-	{SPR_BFLM, 1, 3,{NULL}, 0, 0, S_KOOPAFLAME3, 0}, // S_KOOPAFLAME2
-	{SPR_BFLM, 2, 3,{NULL}, 0, 0, S_KOOPAFLAME1, 0}, // S_KOOPAFLAME3
+	{SPR_BFLM, 0, 3,NULL, 0, 0, S_KOOPAFLAME2, 0}, // S_KOOPAFLAME1
+	{SPR_BFLM, 1, 3,NULL, 0, 0, S_KOOPAFLAME3, 0}, // S_KOOPAFLAME2
+	{SPR_BFLM, 2, 3,NULL, 0, 0, S_KOOPAFLAME1, 0}, // S_KOOPAFLAME3
 
 	// Axe
-	{SPR_MAXE, 0, 3, {NULL}, 0, 0, S_AXE2, 0}, // S_AXE1
-	{SPR_MAXE, 1, 3, {NULL}, 0, 0, S_AXE3, 0}, // S_AXE2
-	{SPR_MAXE, 2, 3, {NULL}, 0, 0, S_AXE1, 0}, // S_AXE3
+	{SPR_MAXE, 0, 3, NULL, 0, 0, S_AXE2, 0}, // S_AXE1
+	{SPR_MAXE, 1, 3, NULL, 0, 0, S_AXE3, 0}, // S_AXE2
+	{SPR_MAXE, 2, 3, NULL, 0, 0, S_AXE1, 0}, // S_AXE3
 
-	{SPR_MUS1, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MARIOBUSH1
-	{SPR_MUS2, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MARIOBUSH2
-	{SPR_TOAD, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_TOAD
+	{SPR_MUS1, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_MARIOBUSH1
+	{SPR_MUS2, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_MARIOBUSH2
+	{SPR_TOAD, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_TOAD
 
 	// Nights Drone
-	{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN2, 0}, // S_NIGHTSDRONE_MAN1
-	{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN1, 0}, // S_NIGHTSDRONE_MAN2
+	{SPR_NDRN, 0, -1, NULL, 0, 0, S_NIGHTSDRONE_MAN2, 0}, // S_NIGHTSDRONE_MAN1
+	{SPR_NDRN, 0, -1, NULL, 0, 0, S_NIGHTSDRONE_MAN1, 0}, // S_NIGHTSDRONE_MAN2
 
 	// Sparkling point (RETURN TO THE GOAL, etc)
-	{SPR_IVSP, 0, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING2, 0},   // S_NIGHTSDRONE_SPARKLING1
-	{SPR_IVSP, 2, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING3, 0},   // S_NIGHTSDRONE_SPARKLING2
-	{SPR_IVSP, 4, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING4, 0},   // S_NIGHTSDRONE_SPARKLING3
-	{SPR_IVSP, 6, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING5, 0},   // S_NIGHTSDRONE_SPARKLING4
-	{SPR_IVSP, 8, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING6, 0},  // S_NIGHTSDRONE_SPARKLING5
-	{SPR_IVSP, 10, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING7, 0}, // S_NIGHTSDRONE_SPARKLING6
-	{SPR_IVSP, 12, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING8, 0}, // S_NIGHTSDRONE_SPARKLING7
-	{SPR_IVSP, 14, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING9, 0}, // S_NIGHTSDRONE_SPARKLING8
-	{SPR_IVSP, 16, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING10, 0}, // S_NIGHTSDRONE_SPARKLING9
-	{SPR_IVSP, 18, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING11, 0}, // S_NIGHTSDRONE_SPARKLING10
-	{SPR_IVSP, 20, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING12, 0}, // S_NIGHTSDRONE_SPARKLING11
-	{SPR_IVSP, 22, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING13, 0}, // S_NIGHTSDRONE_SPARKLING12
-	{SPR_IVSP, 24, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING14, 0}, // S_NIGHTSDRONE_SPARKLING13
-	{SPR_IVSP, 26, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING15, 0}, // S_NIGHTSDRONE_SPARKLING14
-	{SPR_IVSP, 28, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING16, 0}, // S_NIGHTSDRONE_SPARKLING15
-	{SPR_IVSP, 30, 1, {A_GhostMe}, 0, 0, S_NIGHTSDRONE_SPARKLING1, 0}, // S_NIGHTSDRONE_SPARKLING16
+	{SPR_IVSP, 0, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING2, 0},   // S_NIGHTSDRONE_SPARKLING1
+	{SPR_IVSP, 2, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING3, 0},   // S_NIGHTSDRONE_SPARKLING2
+	{SPR_IVSP, 4, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING4, 0},   // S_NIGHTSDRONE_SPARKLING3
+	{SPR_IVSP, 6, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING5, 0},   // S_NIGHTSDRONE_SPARKLING4
+	{SPR_IVSP, 8, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING6, 0},  // S_NIGHTSDRONE_SPARKLING5
+	{SPR_IVSP, 10, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING7, 0}, // S_NIGHTSDRONE_SPARKLING6
+	{SPR_IVSP, 12, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING8, 0}, // S_NIGHTSDRONE_SPARKLING7
+	{SPR_IVSP, 14, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING9, 0}, // S_NIGHTSDRONE_SPARKLING8
+	{SPR_IVSP, 16, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING10, 0}, // S_NIGHTSDRONE_SPARKLING9
+	{SPR_IVSP, 18, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING11, 0}, // S_NIGHTSDRONE_SPARKLING10
+	{SPR_IVSP, 20, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING12, 0}, // S_NIGHTSDRONE_SPARKLING11
+	{SPR_IVSP, 22, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING13, 0}, // S_NIGHTSDRONE_SPARKLING12
+	{SPR_IVSP, 24, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING14, 0}, // S_NIGHTSDRONE_SPARKLING13
+	{SPR_IVSP, 26, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING15, 0}, // S_NIGHTSDRONE_SPARKLING14
+	{SPR_IVSP, 28, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING16, 0}, // S_NIGHTSDRONE_SPARKLING15
+	{SPR_IVSP, 30, 1, A_GhostMe, 0, 0, S_NIGHTSDRONE_SPARKLING1, 0}, // S_NIGHTSDRONE_SPARKLING16
 
 	// NiGHTS GOAL banner (inside the sparkles!)
-	{SPR_GOAL, 0, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL2, 0}, // S_NIGHTSDRONE_GOAL1
-	{SPR_GOAL, 1, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL3, 0}, // S_NIGHTSDRONE_GOAL2
-	{SPR_GOAL, 2, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL4, 0}, // S_NIGHTSDRONE_GOAL3
-	{SPR_GOAL, 3, 4, {NULL}, 0, 0, S_NIGHTSDRONE_GOAL1, 0}, // S_NIGHTSDRONE_GOAL4
+	{SPR_GOAL, 0, 4, NULL, 0, 0, S_NIGHTSDRONE_GOAL2, 0}, // S_NIGHTSDRONE_GOAL1
+	{SPR_GOAL, 1, 4, NULL, 0, 0, S_NIGHTSDRONE_GOAL3, 0}, // S_NIGHTSDRONE_GOAL2
+	{SPR_GOAL, 2, 4, NULL, 0, 0, S_NIGHTSDRONE_GOAL4, 0}, // S_NIGHTSDRONE_GOAL3
+	{SPR_GOAL, 3, 4, NULL, 0, 0, S_NIGHTSDRONE_GOAL1, 0}, // S_NIGHTSDRONE_GOAL4
 
 	// Nights Sparkle
-	{SPR_NSPK, FF_FULLBRIGHT, 140, {NULL}, 0, 0, S_NIGHTSPARKLE2, 0},   // S_NIGHTSPARKLE1
-	{SPR_NSPK, FF_FULLBRIGHT|1, 7, {NULL}, 0, 0, S_NIGHTSPARKLE3, 0},   // S_NIGHTSPARKLE2
-	{SPR_NSPK, FF_FULLBRIGHT|2, 7, {NULL}, 0, 0, S_NIGHTSPARKLE4, 0},   // S_NIGHTSPARKLE3
-	{SPR_NSPK, FF_FULLBRIGHT|3, 7, {NULL}, 0, 0, S_NULL, 0},            // S_NIGHTSPARKLE4
+	{SPR_NSPK, FF_FULLBRIGHT, 140, NULL, 0, 0, S_NIGHTSPARKLE2, 0},   // S_NIGHTSPARKLE1
+	{SPR_NSPK, FF_FULLBRIGHT|1, 7, NULL, 0, 0, S_NIGHTSPARKLE3, 0},   // S_NIGHTSPARKLE2
+	{SPR_NSPK, FF_FULLBRIGHT|2, 7, NULL, 0, 0, S_NIGHTSPARKLE4, 0},   // S_NIGHTSPARKLE3
+	{SPR_NSPK, FF_FULLBRIGHT|3, 7, NULL, 0, 0, S_NULL, 0},            // S_NIGHTSPARKLE4
 
 	// Red Sparkle
-	{SPR_NSPK, FF_FULLBRIGHT|4, 140, {NULL}, 0, 0, S_NIGHTSPARKLESUPER2, 0}, // S_NIGHTSPARKLESUPER1
-	{SPR_NSPK, FF_FULLBRIGHT|5, 7, {NULL}, 0, 0, S_NIGHTSPARKLESUPER3, 0},   // S_NIGHTSPARKLESUPER2
-	{SPR_NSPK, FF_FULLBRIGHT|6, 7, {NULL}, 0, 0, S_NIGHTSPARKLESUPER4, 0},   // S_NIGHTSPARKLESUPER3
-	{SPR_NSPK, FF_FULLBRIGHT|7, 7, {NULL}, 0, 0, S_NULL, 0},                 // S_NIGHTSPARKLESUPER4
+	{SPR_NSPK, FF_FULLBRIGHT|4, 140, NULL, 0, 0, S_NIGHTSPARKLESUPER2, 0}, // S_NIGHTSPARKLESUPER1
+	{SPR_NSPK, FF_FULLBRIGHT|5, 7, NULL, 0, 0, S_NIGHTSPARKLESUPER3, 0},   // S_NIGHTSPARKLESUPER2
+	{SPR_NSPK, FF_FULLBRIGHT|6, 7, NULL, 0, 0, S_NIGHTSPARKLESUPER4, 0},   // S_NIGHTSPARKLESUPER3
+	{SPR_NSPK, FF_FULLBRIGHT|7, 7, NULL, 0, 0, S_NULL, 0},                 // S_NIGHTSPARKLESUPER4
 
 	// Paraloop helper -- THIS IS WHAT DETERMINES THE TIMER NOW
-	{SPR_NULL, 0, 160, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSLOOPHELPER
+	{SPR_NULL, 0, 160, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSLOOPHELPER
 
 	// NiGHTS bumper
-	{SPR_NBMP, 0, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER1
-	{SPR_NBMP, 1, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER2
-	{SPR_NBMP, 2, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER3
-	{SPR_NBMP, 3, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER4
-	{SPR_NBMP, 4, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER5
-	{SPR_NBMP, 5, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER6
-	{SPR_NBMP, 6, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER7
-	{SPR_NBMP, 7, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER8
-	{SPR_NBMP, 8, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER9
-	{SPR_NBMP, 9, -1, {NULL}, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER10
-	{SPR_NBMP, 10, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSBUMPER11
-	{SPR_NBMP, 11, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSBUMPER12
-
-	{SPR_HOOP, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HOOP
-	{SPR_HOOP, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HOOP_XMASA
-	{SPR_HOOP, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HOOP_XMASB
-
-	{SPR_NSCR, FF_FULLBRIGHT,    -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE10
-	{SPR_NSCR, FF_FULLBRIGHT|1,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE20
-	{SPR_NSCR, FF_FULLBRIGHT|2,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE30
-	{SPR_NSCR, FF_FULLBRIGHT|3,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE40
-	{SPR_NSCR, FF_FULLBRIGHT|4,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE50
-	{SPR_NSCR, FF_FULLBRIGHT|5,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE60
-	{SPR_NSCR, FF_FULLBRIGHT|6,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE70
-	{SPR_NSCR, FF_FULLBRIGHT|7,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE80
-	{SPR_NSCR, FF_FULLBRIGHT|8,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE90
-	{SPR_NSCR, FF_FULLBRIGHT|9,  -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE100
-	{SPR_NSCR, FF_FULLBRIGHT|10, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE10_2
-	{SPR_NSCR, FF_FULLBRIGHT|11, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE20_2
-	{SPR_NSCR, FF_FULLBRIGHT|12, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE30_2
-	{SPR_NSCR, FF_FULLBRIGHT|13, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE40_2
-	{SPR_NSCR, FF_FULLBRIGHT|14, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE50_2
-	{SPR_NSCR, FF_FULLBRIGHT|15, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE60_2
-	{SPR_NSCR, FF_FULLBRIGHT|16, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE70_2
-	{SPR_NSCR, FF_FULLBRIGHT|17, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE80_2
-	{SPR_NSCR, FF_FULLBRIGHT|18, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE90_2
-	{SPR_NSCR, FF_FULLBRIGHT|19, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSCORE100_2
+	{SPR_NBMP, 0, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER1
+	{SPR_NBMP, 1, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER2
+	{SPR_NBMP, 2, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER3
+	{SPR_NBMP, 3, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER4
+	{SPR_NBMP, 4, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER5
+	{SPR_NBMP, 5, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER6
+	{SPR_NBMP, 6, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER7
+	{SPR_NBMP, 7, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER8
+	{SPR_NBMP, 8, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER9
+	{SPR_NBMP, 9, -1, NULL, 0, 0, S_NULL, 0},  // S_NIGHTSBUMPER10
+	{SPR_NBMP, 10, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSBUMPER11
+	{SPR_NBMP, 11, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSBUMPER12
+
+	{SPR_HOOP, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_HOOP
+	{SPR_HOOP, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_HOOP_XMASA
+	{SPR_HOOP, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_HOOP_XMASB
+
+	{SPR_NSCR, FF_FULLBRIGHT,    -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE10
+	{SPR_NSCR, FF_FULLBRIGHT|1,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE20
+	{SPR_NSCR, FF_FULLBRIGHT|2,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE30
+	{SPR_NSCR, FF_FULLBRIGHT|3,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE40
+	{SPR_NSCR, FF_FULLBRIGHT|4,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE50
+	{SPR_NSCR, FF_FULLBRIGHT|5,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE60
+	{SPR_NSCR, FF_FULLBRIGHT|6,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE70
+	{SPR_NSCR, FF_FULLBRIGHT|7,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE80
+	{SPR_NSCR, FF_FULLBRIGHT|8,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE90
+	{SPR_NSCR, FF_FULLBRIGHT|9,  -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE100
+	{SPR_NSCR, FF_FULLBRIGHT|10, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE10_2
+	{SPR_NSCR, FF_FULLBRIGHT|11, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE20_2
+	{SPR_NSCR, FF_FULLBRIGHT|12, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE30_2
+	{SPR_NSCR, FF_FULLBRIGHT|13, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE40_2
+	{SPR_NSCR, FF_FULLBRIGHT|14, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE50_2
+	{SPR_NSCR, FF_FULLBRIGHT|15, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE60_2
+	{SPR_NSCR, FF_FULLBRIGHT|16, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE70_2
+	{SPR_NSCR, FF_FULLBRIGHT|17, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE80_2
+	{SPR_NSCR, FF_FULLBRIGHT|18, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE90_2
+	{SPR_NSCR, FF_FULLBRIGHT|19, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSCORE100_2
 
 	// NiGHTS Paraloop Powerups
-	{SPR_NPRU, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSSUPERLOOP
-	{SPR_NPRU, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSDRILLREFILL
-	{SPR_NPRU, 2, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSHELPER
-	{SPR_NPRU, 3, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSEXTRATIME
-	{SPR_NPRU, 4, -1, {NULL}, 0, 0, S_NULL, 0}, // S_NIGHTSLINKFREEZE
+	{SPR_NPRU, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSSUPERLOOP
+	{SPR_NPRU, 1, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSDRILLREFILL
+	{SPR_NPRU, 2, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSHELPER
+	{SPR_NPRU, 3, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSEXTRATIME
+	{SPR_NPRU, 4, -1, NULL, 0, 0, S_NULL, 0}, // S_NIGHTSLINKFREEZE
 
-	{SPR_CAPS, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_EGGCAPSULE
+	{SPR_CAPS, 0, -1, NULL, 0, 0, S_NULL, 0}, // S_EGGCAPSULE
 
 	// Orbiting Chaos Emeralds/Ideya for NiGHTS
-	{SPR_CEMG, FF_FULLBRIGHT,   1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM1, 0}, // S_ORBITEM1
-	{SPR_CEMG, FF_FULLBRIGHT|1, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM2, 0}, // S_ORBITEM2
-	{SPR_CEMG, FF_FULLBRIGHT|2, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM3, 0}, // S_ORBITEM3
-	{SPR_CEMG, FF_FULLBRIGHT|3, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM4, 0}, // S_ORBITEM4
-	{SPR_CEMG, FF_FULLBRIGHT|4, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM5, 0}, // S_ORBITEM5
-	{SPR_CEMG, FF_FULLBRIGHT|5, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM6, 0}, // S_ORBITEM6
-	{SPR_CEMG, FF_FULLBRIGHT|6, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM7, 0}, // S_ORBITEM7
-	{SPR_CEMG, FF_FULLBRIGHT|7, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBITEM8, 0}, // S_ORBITEM8
-	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT,   1, {A_OrbitNights}, ANG2*2, 0, S_ORBIDYA1, 0}, // S_ORBIDYA1
-	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|1, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBIDYA2, 0}, // S_ORBIDYA2
-	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|2, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBIDYA3, 0}, // S_ORBIDYA3
-	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|3, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBIDYA4, 0}, // S_ORBIDYA4
-	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|4, 1, {A_OrbitNights}, ANG2*2, 0, S_ORBIDYA5, 0}, // S_ORBIDYA5
+	{SPR_CEMG, FF_FULLBRIGHT,   1, A_OrbitNights, ANG2*2, 0, S_ORBITEM1, 0}, // S_ORBITEM1
+	{SPR_CEMG, FF_FULLBRIGHT|1, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM2, 0}, // S_ORBITEM2
+	{SPR_CEMG, FF_FULLBRIGHT|2, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM3, 0}, // S_ORBITEM3
+	{SPR_CEMG, FF_FULLBRIGHT|3, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM4, 0}, // S_ORBITEM4
+	{SPR_CEMG, FF_FULLBRIGHT|4, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM5, 0}, // S_ORBITEM5
+	{SPR_CEMG, FF_FULLBRIGHT|5, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM6, 0}, // S_ORBITEM6
+	{SPR_CEMG, FF_FULLBRIGHT|6, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM7, 0}, // S_ORBITEM7
+	{SPR_CEMG, FF_FULLBRIGHT|7, 1, A_OrbitNights, ANG2*2, 0, S_ORBITEM8, 0}, // S_ORBITEM8
+	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT,   1, A_OrbitNights, ANG2*2, 0, S_ORBIDYA1, 0}, // S_ORBIDYA1
+	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|1, 1, A_OrbitNights, ANG2*2, 0, S_ORBIDYA2, 0}, // S_ORBIDYA2
+	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|2, 1, A_OrbitNights, ANG2*2, 0, S_ORBIDYA3, 0}, // S_ORBIDYA3
+	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|3, 1, A_OrbitNights, ANG2*2, 0, S_ORBIDYA4, 0}, // S_ORBIDYA4
+	{SPR_IDYA, FF_TRANS20|FF_FULLBRIGHT|4, 1, A_OrbitNights, ANG2*2, 0, S_ORBIDYA5, 0}, // S_ORBIDYA5
 
 	// Flicky helper for NiGHTS
-	{SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER2, 0}, // S_NIGHTOPIANHELPER1
-	{SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER3, 0}, // S_NIGHTOPIANHELPER2
-	{SPR_FL01, 1, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER4, 0}, // S_NIGHTOPIANHELPER3
-	{SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER5, 0}, // S_NIGHTOPIANHELPER4
-	{SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER6, 0}, // S_NIGHTOPIANHELPER5
-	{SPR_FL01, 2, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER7, 0}, // S_NIGHTOPIANHELPER6
-	{SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER8, 0}, // S_NIGHTOPIANHELPER7
-	{SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER9, 0}, // S_NIGHTOPIANHELPER8
-	{SPR_FL01, 3, 1, {A_OrbitNights}, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER1, 0}, // S_NIGHTOPIANHELPER9
+	{SPR_FL01, 1, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER2, 0}, // S_NIGHTOPIANHELPER1
+	{SPR_FL01, 1, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER3, 0}, // S_NIGHTOPIANHELPER2
+	{SPR_FL01, 1, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER4, 0}, // S_NIGHTOPIANHELPER3
+	{SPR_FL01, 2, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER5, 0}, // S_NIGHTOPIANHELPER4
+	{SPR_FL01, 2, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER6, 0}, // S_NIGHTOPIANHELPER5
+	{SPR_FL01, 2, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER7, 0}, // S_NIGHTOPIANHELPER6
+	{SPR_FL01, 3, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER8, 0}, // S_NIGHTOPIANHELPER7
+	{SPR_FL01, 3, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER9, 0}, // S_NIGHTOPIANHELPER8
+	{SPR_FL01, 3, 1, A_OrbitNights, ANG2*2, 180 | 0x10000, S_NIGHTOPIANHELPER1, 0}, // S_NIGHTOPIANHELPER9
 
 	// Nightopian
-	{SPR_NTPN, 0, 2, {A_Look}, 1, 1, S_PIAN_LOOK2, 0}, // S_PIAN_LOOK1
-	{SPR_NTPN, 1, 2, {A_Look}, 1, 1, S_PIAN_LOOK3, 0}, // S_PIAN_LOOK2
-	{SPR_NTPN, 2, 2, {A_Look}, 1, 1, S_PIAN_LOOK1, 0}, // S_PIAN_LOOK3
-	{SPR_NTPN, 0, 2, {A_JetgThink}, 0, 0, S_PIAN_FLY2, 0}, // S_PIAN_FLY1
-	{SPR_NTPN, 1, 2, {NULL}, 0, 0, S_PIAN_FLY3, 0}, // S_PIAN_FLY2
-	{SPR_NTPN, 2, 2, {NULL}, 0, 0, S_PIAN_FLY1, 0}, // S_PIAN_FLY3
-	{SPR_NTPN, 3|FF_ANIMATE, 24, {NULL}, 2, 2, S_PIAN_FLY1, 0}, // S_PIAN_SING
+	{SPR_NTPN, 0, 2, A_Look, 1, 1, S_PIAN_LOOK2, 0}, // S_PIAN_LOOK1
+	{SPR_NTPN, 1, 2, A_Look, 1, 1, S_PIAN_LOOK3, 0}, // S_PIAN_LOOK2
+	{SPR_NTPN, 2, 2, A_Look, 1, 1, S_PIAN_LOOK1, 0}, // S_PIAN_LOOK3
+	{SPR_NTPN, 0, 2, A_JetgThink, 0, 0, S_PIAN_FLY2, 0}, // S_PIAN_FLY1
+	{SPR_NTPN, 1, 2, NULL, 0, 0, S_PIAN_FLY3, 0}, // S_PIAN_FLY2
+	{SPR_NTPN, 2, 2, NULL, 0, 0, S_PIAN_FLY1, 0}, // S_PIAN_FLY3
+	{SPR_NTPN, 3|FF_ANIMATE, 24, NULL, 2, 2, S_PIAN_FLY1, 0}, // S_PIAN_SING
 
 	// Shleep
-	{SPR_SHLP, 0, 15, {NULL}, 0, 0, S_SHLEEP2, 0}, // S_SHLEEP1
-	{SPR_SHLP, 1, 15, {NULL}, 0, 0, S_SHLEEP3, 0}, // S_SHLEEP2
-	{SPR_SHLP, 2, 15, {NULL}, 0, 0, S_SHLEEP4, 0}, // S_SHLEEP3
-	{SPR_SHLP, 1, 15, {NULL}, 0, 0, S_SHLEEP1, 0}, // S_SHLEEP4
-	{SPR_SHLP, 3, 1, {A_Scream},  0, 0, S_SHLEEPBOUNCE2, 0}, // S_SHLEEPBOUNCE1
-	{SPR_SHLP, 3, 1, {A_ZThrust}, 9, 0, S_SHLEEPBOUNCE3, 0}, // S_SHLEEPBOUNCE2
-	{SPR_SHLP, 3, 400, {A_SetObjectFlags}, MF_SLIDEME|MF_ENEMY|MF_BOUNCE|MF_NOCLIP|MF_NOCLIPHEIGHT, 0, S_NULL, 0}, // S_SHLEEPBOUNCE3
+	{SPR_SHLP, 0, 15, NULL, 0, 0, S_SHLEEP2, 0}, // S_SHLEEP1
+	{SPR_SHLP, 1, 15, NULL, 0, 0, S_SHLEEP3, 0}, // S_SHLEEP2
+	{SPR_SHLP, 2, 15, NULL, 0, 0, S_SHLEEP4, 0}, // S_SHLEEP3
+	{SPR_SHLP, 1, 15, NULL, 0, 0, S_SHLEEP1, 0}, // S_SHLEEP4
+	{SPR_SHLP, 3, 1, A_Scream,  0, 0, S_SHLEEPBOUNCE2, 0}, // S_SHLEEPBOUNCE1
+	{SPR_SHLP, 3, 1, A_ZThrust, 9, 0, S_SHLEEPBOUNCE3, 0}, // S_SHLEEPBOUNCE2
+	{SPR_SHLP, 3, 400, A_SetObjectFlags, MF_SLIDEME|MF_ENEMY|MF_BOUNCE|MF_NOCLIP|MF_NOCLIPHEIGHT, 0, S_NULL, 0}, // S_SHLEEPBOUNCE3
 
 	// Secret badniks and hazards, shhhh
-	{SPR_PENG, 0, 2, {A_Look},  0, 0, S_PENGUINATOR_LOOK, 0},    // S_PENGUINATOR_LOOK
-	{SPR_PENG, 0, 2, {A_Chase}, 0, 0, S_PENGUINATOR_WADDLE2, 0}, // S_PENGUINATOR_WADDLE1
-	{SPR_PENG, 1, 2, {A_Chase}, 0, 0, S_PENGUINATOR_WADDLE3, 0}, // S_PENGUINATOR_WADDLE2
-	{SPR_PENG, 0, 2, {A_Chase}, 0, 0, S_PENGUINATOR_WADDLE4, 0}, // S_PENGUINATOR_WADDLE3
-	{SPR_PENG, 2, 2, {A_Chase}, 0, 0, S_PENGUINATOR_WADDLE1, 0}, // S_PENGUINATOR_WADDLE4
-	{SPR_PENG, 0,  0, {A_FaceTarget},      0,  0, S_PENGUINATOR_SLIDE2, 0}, // S_PENGUINATOR_SLIDE1
-	{SPR_PENG, 3,  5, {A_BunnyHop},        4, 10, S_PENGUINATOR_SLIDE3, 0}, // S_PENGUINATOR_SLIDE2
-	{SPR_PENG, 4, 90, {A_PlayAttackSound}, 0,  0, S_PENGUINATOR_SLIDE4, 0}, // S_PENGUINATOR_SLIDE3
-	{SPR_PENG, 3,  5, {A_Thrust},          0,  1, S_PENGUINATOR_SLIDE5, 0}, // S_PENGUINATOR_SLIDE4
-	{SPR_PENG, 0,  5, {A_FaceTarget},      0,  0, S_PENGUINATOR_LOOK, 0},   // S_PENGUINATOR_SLIDE5
-
-	{SPR_POPH, 0,  2, {A_Look},  (2048<<16)|1,           0, S_POPHAT_LOOK, 0},   // S_POPHAT_LOOK
-	{SPR_POPH, 1,  0, {A_MultiShotDist}, (MT_SPINDUST<<16)|4, 24, S_POPHAT_SHOOT2, 0}, // S_POPHAT_SHOOT1
-	{SPR_POPH, 1,  2, {A_LobShot}, MT_POPSHOT, (70<<16)|60, S_POPHAT_SHOOT3, 0}, // S_POPHAT_SHOOT2
-	{SPR_POPH, 2,  1, {NULL},               0,           0, S_POPHAT_SHOOT4, 0}, // S_POPHAT_SHOOT3
-	{SPR_POPH, 0, 57, {NULL},               0,           0, S_POPHAT_LOOK, 0},   // S_POPHAT_SHOOT4
-	{SPR_POPH, 3,  3, {A_SpawnObjectRelative}, 0, MT_POPSHOT_TRAIL, S_POPSHOT, 0},   // S_POPSHOT
-	{SPR_NULL, 0,  2, {NULL},                  0, 0,                S_SPINDUST1, 0}, // S_POPSHOT_TRAIL
-
-	{SPR_HIVE, 0,  5, {A_Look}, 1, 1, S_HIVEELEMENTAL_LOOK, 0}, // S_HIVEELEMENTAL_LOOK
-	{SPR_HIVE, 0, 14, {A_PlaySound}, sfx_s3k76, 1, S_HIVEELEMENTAL_PREPARE2, 0}, // S_HIVEELEMENTAL_PREPARE1
-	{SPR_HIVE, 0,  6, {A_PlaySound}, sfx_s3k8c, 1, S_HIVEELEMENTAL_SHOOT1, 0}, // S_HIVEELEMENTAL_PREPARE2
-	{SPR_HIVE, 1,  4, {A_WhoCaresIfYourSonIsABee}, (MT_BUMBLEBORE<<16)|4, (1<<16)|32, S_HIVEELEMENTAL_SHOOT2, 0}, // S_HIVEELEMENTAL_SHOOT1
-	{SPR_HIVE, 2,  2, {NULL}, 0, 0, S_HIVEELEMENTAL_DORMANT, 0}, // S_HIVEELEMENTAL_SHOOT2
-	{SPR_HIVE, 0,  5, {A_ParentTriesToSleep}, S_HIVEELEMENTAL_PREPARE1, 0, S_HIVEELEMENTAL_DORMANT, 0}, // S_HIVEELEMENTAL_DORMANT
-	{SPR_HIVE, 3, 35, {A_Pain}, 0, 0, S_HIVEELEMENTAL_LOOK, 0}, // S_HIVEELEMENTAL_PAIN
-	{SPR_HIVE, 3,  2, {A_BossScream}, 1, 0, S_HIVEELEMENTAL_DIE2, 0}, // S_HIVEELEMENTAL_DIE1
-	{SPR_NULL, 0,  2, {A_BossScream}, 1, 0, S_HIVEELEMENTAL_DIE3, 0}, // S_HIVEELEMENTAL_DIE2
-	{SPR_NULL, 0,  0, {A_Repeat}, 7, S_HIVEELEMENTAL_DIE1, S_XPLD_FLICKY, 0}, // S_HIVEELEMENTAL_DIE3
-
-	{SPR_BUMB, 1, 10, {NULL}, 0, 0, S_BUMBLEBORE_LOOK1, 0}, // S_BUMBLEBORE_SPAWN
-	{SPR_BUMB, 0,  4, {A_Look}, 1, 1, S_BUMBLEBORE_LOOK2, 0}, // S_BUMBLEBORE_LOOK1
-	{SPR_BUMB, 1,  4, {A_Look}, 1, 1, S_BUMBLEBORE_LOOK1, 0}, // S_BUMBLEBORE_LOOK2
-	{SPR_BUMB, 0,  4, {A_JetbThink}, 0, 0, S_BUMBLEBORE_FLY2, 0}, // S_BUMBLEBORE_FLY1
-	{SPR_BUMB, 1,  4, {A_JetbThink}, 0, 0, S_BUMBLEBORE_FLY1, 0}, // S_BUMBLEBORE_FLY2
-	{SPR_BUMB, 2|FF_FULLBRIGHT,  12, {A_ZThrust},  4, (1<<16)|1, S_BUMBLEBORE_FALL1, 0},  // S_BUMBLEBORE_RAISE
-	{SPR_BUMB, 2|FF_FULLBRIGHT,   0, {A_ZThrust}, -8, (1<<16)|1, S_BUMBLEBORE_FALL2, 0},  // S_BUMBLEBORE_FALL1
-	{SPR_BUMB, 2|FF_FULLBRIGHT, 300, {NULL},       0,         0, S_BUMBLEBORE_DIE, 0},    // S_BUMBLEBORE_FALL2
-	{SPR_BUMB, 4, 3, {A_MultiShotDist}, (MT_DUST<<16)|6, -40, S_BUMBLEBORE_STUCK2, 0},    // S_BUMBLEBORE_STUCK1
-	{SPR_BUMB, 5, 120, {NULL}, 0, 0, S_BUMBLEBORE_DIE, 0}, // S_BUMBLEBORE_STUCK2
-	{SPR_BUMB, 5, 0, {A_CryingToMomma}, 0, 0, S_XPLD1, 0}, // S_BUMBLEBORE_DIE
-
-	{SPR_BBUZ,          0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_BUGGLEIDLE
-	{SPR_BBUZ, FF_ANIMATE, -1, {NULL}, 1, 2, S_NULL, 0}, // S_BUGGLEFLY
-
-	{SPR_FMCE, 0, 20, {NULL}, 0, 0, S_SMASHSPIKE_EASE1, 0}, // S_SMASHSPIKE_FLOAT
-	{SPR_FMCE, 0,  4, {A_ZThrust},  4, (1<<16)|1, S_SMASHSPIKE_EASE2, 0}, // S_SMASHSPIKE_EASE1
-	{SPR_FMCE, 0,  4, {A_ZThrust},  0, (1<<16)|1, S_SMASHSPIKE_FALL, 0},  // S_SMASHSPIKE_EASE2
-	{SPR_FMCE, 0,  2, {A_ZThrust}, -6,         1, S_SMASHSPIKE_FALL, 0},  // S_SMASHSPIKE_FALL
-	{SPR_FMCE, 1,  2, {A_MultiShotDist}, (MT_DUST<<16)|10, -48, S_SMASHSPIKE_STOMP2, 0}, // S_SMASHSPIKE_STOMP1
-	{SPR_FMCE, 2, 14, {NULL}, 0, 0, S_SMASHSPIKE_RISE1, 0}, // S_SMASHSPIKE_STOMP2
-	{SPR_FMCE, 1,  2, {NULL}, 0, 0, S_SMASHSPIKE_RISE2, 0}, // S_SMASHSPIKE_RISE1
-	{SPR_FMCE, 0,  2, {A_ZThrust}, 6, (1<<16)|1, S_SMASHSPIKE_RISE2, 0}, // S_SMASHSPIKE_RISE2
-
-	{SPR_CACO, 0,  5, {A_Look}, (1100<<16)|1, 0, S_CACO_LOOK, 0}, // S_CACO_LOOK
-	{SPR_CACO, 1,  0, {A_MultiShotDist}, (MT_DUST<<16)|7, -48, S_CACO_WAKE2, 0}, // S_CACO_WAKE1
-	{SPR_CACO, 1, 10, {A_ZThrust}, 4, (1<<16)|1, S_CACO_WAKE3, 0}, // S_CACO_WAKE2
-	{SPR_CACO, 2,  8, {A_ZThrust}, 2, (1<<16)|1, S_CACO_WAKE4, 0}, // S_CACO_WAKE3
-	{SPR_CACO, 2,  4, {A_ZThrust}, 0, (1<<16)|1, S_CACO_ROAR, 0},  // S_CACO_WAKE4
-	{SPR_CACO, 2, 10, {A_PlayActiveSound}, 0, 0, S_CACO_CHASE, 0}, // S_CACO_ROAR
-	{SPR_CACO, 2,  5, {A_JetChase}, 0, 0, S_CACO_CHASE_REPEAT, 0}, // S_CACO_CHASE
-	{SPR_CACO, 2,  0, {A_Repeat}, 5, S_CACO_CHASE, S_CACO_RANDOM, 0}, // S_CACO_CHASE_REPEAT
-	{SPR_CACO, 2,  0, {A_RandomState}, S_CACO_PREPARE_SOUND, S_CACO_CHASE, S_CACO_RANDOM, 0}, // S_CACO_RANDOM
-	{SPR_CACO, 2,  8, {A_PlaySound}, sfx_s3k95, 1, S_CACO_PREPARE1, 0},  // S_CACO_PREPARE_SOUND
-	{SPR_CACO, 3,               8, {NULL}, 0, 0, S_CACO_PREPARE2, 0},    // S_CACO_PREPARE1
-	{SPR_CACO, 4|FF_FULLBRIGHT, 8, {NULL}, 0, 0, S_CACO_PREPARE3, 0},    // S_CACO_PREPARE2
-	{SPR_CACO, 5|FF_FULLBRIGHT, 8, {NULL}, 0, 0, S_CACO_SHOOT_SOUND, 0}, // S_CACO_PREPARE3
-	{SPR_CACO, 4|FF_FULLBRIGHT, 0, {A_PlaySound}, sfx_s3k4e, 1, S_CACO_SHOOT1, 0}, // S_CACO_SHOOT_SOUND
-	{SPR_CACO, 4|FF_FULLBRIGHT, 0, {A_SpawnParticleRelative}, 0, S_CACOFIRE_EXPLODE1, S_CACO_SHOOT2, 0}, // S_CACO_SHOOT1
-	{SPR_CACO, 4|FF_FULLBRIGHT, 6, {A_FireShot}, MT_CACOFIRE, -24, S_CACO_CLOSE, 0}, // S_CACO_SHOOT2
-	{SPR_CACO, 3,              15, {NULL}, 0, 0, S_CACO_CHASE, 0}, // S_CACO_CLOSE
-	{SPR_CACO, 10, 0, {A_SetObjectFlags}, MF_NOBLOCKMAP, 0, S_CACO_DIE_GIB1, 0}, // S_CACO_DIE_FLAGS
-	{SPR_CACO, 10, 0, {A_NapalmScatter}, (7<<16)|MT_CACOSHARD, (30<<16)|20, S_CACO_DIE_GIB2, 0}, // S_CACO_DIE_GIB1
-	{SPR_CACO, 10, 0, {A_NapalmScatter}, (10<<16)|MT_CACOSHARD, (24<<16)|32, S_CACO_DIE_SCREAM, 0}, // S_CACO_DIE_GIB2
-	{SPR_CACO, 10, 0, {A_Scream}, 0, 0, S_CACO_DIE_SHATTER, 0}, // S_CACO_DIE_SCREAM
-	{SPR_CACO, 10, 0, {A_PlaySound}, sfx_pumpkn, 1, S_CACO_DIE_FALL, 0}, // S_CACO_DIE_SHATTER
-	{SPR_CACO, 10, 250, {A_FlickySpawn}, (1<<16), 0, S_NULL, 0}, // S_CACO_DIE_FALL
-
-	{SPR_CACO, 6, 0, {A_RandomState}, S_CACOSHARD1_1, S_CACOSHARD2_1, S_NULL, 0}, // S_CACOSHARD_RANDOMIZE
-	{SPR_CACO, 6, 3, {NULL}, 0, 0, S_CACOSHARD1_2, 0}, // S_CACOSHARD1_1
-	{SPR_CACO, 7, 3, {NULL}, 0, 0, S_CACOSHARD1_1, 0}, // S_CACOSHARD1_2
-	{SPR_CACO, 8, 3, {NULL}, 0, 0, S_CACOSHARD2_2, 0}, // S_CACOSHARD2_1
-	{SPR_CACO, 9, 3, {NULL}, 0, 0, S_CACOSHARD2_1, 0}, // S_CACOSHARD2_2
-	{SPR_BAL2,   FF_FULLBRIGHT, 2, {A_GhostMe}, 0, 0, S_CACOFIRE2, 0}, // S_CACOFIRE1
-	{SPR_BAL2, 1|FF_FULLBRIGHT, 2, {A_GhostMe}, 0, 0, S_CACOFIRE3, 0}, // S_CACOFIRE2
-	{SPR_BAL2,   FF_FULLBRIGHT, 0, {A_PlayActiveSound}, 0, 0, S_CACOFIRE1, 0}, // S_CACOFIRE3
-	{SPR_BAL2, 2|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_CACOFIRE_EXPLODE2, 0}, // S_CACOFIRE_EXPLODE1
-	{SPR_BAL2, 3|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_CACOFIRE_EXPLODE3, 0}, // S_CACOFIRE_EXPLODE2
-	{SPR_BAL2, 4|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_CACOFIRE_EXPLODE4, 0}, // S_CACOFIRE_EXPLODE3
-	{SPR_BAL2, 5|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0},      // S_CACOFIRE_EXPLODE4
-
-	{SPR_SBOB, 1, 10, {A_ZThrust}, -2, (1<<16)|1, S_SPINBOBERT_MOVE_UP, 0},       // S_SPINBOBERT_MOVE_FLIPUP
-	{SPR_SBOB, 0, 45, {A_ZThrust},  4, (1<<16)|1, S_SPINBOBERT_MOVE_FLIPDOWN, 0}, // S_SPINBOBERT_MOVE_UP
-	{SPR_SBOB, 1, 10, {A_ZThrust},  2, (1<<16)|1, S_SPINBOBERT_MOVE_DOWN, 0},     // S_SPINBOBERT_MOVE_FLIPDOWN
-	{SPR_SBOB, 2, 45, {A_ZThrust}, -4, (1<<16)|1, S_SPINBOBERT_MOVE_FLIPUP, 0},   // S_SPINBOBERT_MOVE_DOWN
-	{SPR_SBSK, FF_FULLBRIGHT, 1, {A_RotateSpikeBall},       0,                        0, S_SPINBOBERT_FIRE_GHOST, 0}, // S_SPINBOBERT_FIRE_MOVE
-	{SPR_SBSK, FF_FULLBRIGHT, 0, {A_SpawnParticleRelative}, 0, S_SPINBOBERT_FIRE_TRAIL1, S_SPINBOBERT_FIRE_MOVE, 0},  // S_SPINBOBERT_FIRE_GHOST
-	{SPR_SBFL, 2|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SPINBOBERT_FIRE_TRAIL2, 0}, // S_SPINBOBERT_FIRE_TRAIL1
-	{SPR_SBFL, 1|FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_SPINBOBERT_FIRE_TRAIL3, 0}, // S_SPINBOBERT_FIRE_TRAIL2
-	{SPR_SBFL,   FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_NULL, 0},                   // S_SPINBOBERT_FIRE_TRAIL3
-
-	{SPR_HBAT, 0,  5, {A_Look}, (900<<16)|1, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_LOOK
-	{SPR_HBAT, 1,  0, {A_MultiShotDist}, (MT_DUST<<16)|10, -34, S_HANGSTER_SWOOP2, 0}, // S_HANGSTER_SWOOP1
-	{SPR_HBAT, 1,  2, {A_ZThrust}, -8, (1<<16)|1, S_HANGSTER_SWOOP2, 0}, // S_HANGSTER_SWOOP2
-	{SPR_HBAT, 1,  6, {A_ZThrust}, -5, (1<<16), S_HANGSTER_ARC2, 0}, // S_HANGSTER_ARC1
-	{SPR_HBAT, 1,  5, {A_ZThrust}, -2, (1<<16), S_HANGSTER_ARC3, 0}, // S_HANGSTER_ARC2
-	{SPR_HBAT, 1,  1, {A_ZThrust},  0, (1<<16), S_HANGSTER_FLY1, 0}, // S_HANGSTER_ARC3
-	{SPR_HBAT, 1,  4, {A_Thrust}, 6, 1, S_HANGSTER_FLY2, 0}, // S_HANGSTER_FLY1
-	{SPR_HBAT, 2,  1, {A_PlaySound}, sfx_s3k52, 1, S_HANGSTER_FLY3, 0}, // S_HANGSTER_FLY2
-	{SPR_HBAT, 3,  4, {A_Thrust}, 6, 1, S_HANGSTER_FLY4, 0}, // S_HANGSTER_FLY3
-	{SPR_HBAT, 2,  1, {A_Thrust}, 6, 1, S_HANGSTER_FLYREPEAT, 0}, // S_HANGSTER_FLY4
-	{SPR_HBAT, 2,  0, {A_Repeat}, 12, S_HANGSTER_FLY1, S_HANGSTER_ARCUP1, 0}, // S_HANGSTER_FLYREPEAT
-	{SPR_HBAT, 1,  5, {A_ZThrust},  2, (1<<16), S_HANGSTER_ARCUP2, 0}, // S_HANGSTER_ARCUP1
-	{SPR_HBAT, 1,  6, {A_ZThrust},  5, (1<<16), S_HANGSTER_ARCUP3, 0}, // S_HANGSTER_ARCUP2
-	{SPR_HBAT, 1,  1, {A_ZThrust},  0, (1<<16), S_HANGSTER_RETURN1, 0}, // S_HANGSTER_ARCUP3
-	{SPR_HBAT, 1,  1, {A_ZThrust},  8, (1<<16), S_HANGSTER_RETURN2, 0}, // S_HANGSTER_RETURN1
-	{SPR_HBAT, 3,  1, {NULL}, 0, 0, S_HANGSTER_RETURN1, 0}, // S_HANGSTER_RETURN2
-	{SPR_HBAT, 0, 15, {NULL}, 0, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_RETURN3
-
-	{SPR_NULL, 0,  35, {NULL}, 0, 0, S_CRUMBLE2, 0}, // S_CRUMBLE1
-	{SPR_NULL, 0, 105, {A_Scream}, 0, 0, S_NULL, 0}, // S_CRUMBLE2
+	{SPR_PENG, 0, 2, A_Look,  0, 0, S_PENGUINATOR_LOOK, 0},    // S_PENGUINATOR_LOOK
+	{SPR_PENG, 0, 2, A_Chase, 0, 0, S_PENGUINATOR_WADDLE2, 0}, // S_PENGUINATOR_WADDLE1
+	{SPR_PENG, 1, 2, A_Chase, 0, 0, S_PENGUINATOR_WADDLE3, 0}, // S_PENGUINATOR_WADDLE2
+	{SPR_PENG, 0, 2, A_Chase, 0, 0, S_PENGUINATOR_WADDLE4, 0}, // S_PENGUINATOR_WADDLE3
+	{SPR_PENG, 2, 2, A_Chase, 0, 0, S_PENGUINATOR_WADDLE1, 0}, // S_PENGUINATOR_WADDLE4
+	{SPR_PENG, 0,  0, A_FaceTarget,      0,  0, S_PENGUINATOR_SLIDE2, 0}, // S_PENGUINATOR_SLIDE1
+	{SPR_PENG, 3,  5, A_BunnyHop,        4, 10, S_PENGUINATOR_SLIDE3, 0}, // S_PENGUINATOR_SLIDE2
+	{SPR_PENG, 4, 90, A_PlayAttackSound, 0,  0, S_PENGUINATOR_SLIDE4, 0}, // S_PENGUINATOR_SLIDE3
+	{SPR_PENG, 3,  5, A_Thrust,          0,  1, S_PENGUINATOR_SLIDE5, 0}, // S_PENGUINATOR_SLIDE4
+	{SPR_PENG, 0,  5, A_FaceTarget,      0,  0, S_PENGUINATOR_LOOK, 0},   // S_PENGUINATOR_SLIDE5
+
+	{SPR_POPH, 0,  2, A_Look,  (2048<<16)|1,           0, S_POPHAT_LOOK, 0},   // S_POPHAT_LOOK
+	{SPR_POPH, 1,  0, A_MultiShotDist, (MT_SPINDUST<<16)|4, 24, S_POPHAT_SHOOT2, 0}, // S_POPHAT_SHOOT1
+	{SPR_POPH, 1,  2, A_LobShot, MT_POPSHOT, (70<<16)|60, S_POPHAT_SHOOT3, 0}, // S_POPHAT_SHOOT2
+	{SPR_POPH, 2,  1, NULL,               0,           0, S_POPHAT_SHOOT4, 0}, // S_POPHAT_SHOOT3
+	{SPR_POPH, 0, 57, NULL,               0,           0, S_POPHAT_LOOK, 0},   // S_POPHAT_SHOOT4
+	{SPR_POPH, 3,  3, A_SpawnObjectRelative, 0, MT_POPSHOT_TRAIL, S_POPSHOT, 0},   // S_POPSHOT
+	{SPR_NULL, 0,  2, NULL,                  0, 0,                S_SPINDUST1, 0}, // S_POPSHOT_TRAIL
+
+	{SPR_HIVE, 0,  5, A_Look, 1, 1, S_HIVEELEMENTAL_LOOK, 0}, // S_HIVEELEMENTAL_LOOK
+	{SPR_HIVE, 0, 14, A_PlaySound, sfx_s3k76, 1, S_HIVEELEMENTAL_PREPARE2, 0}, // S_HIVEELEMENTAL_PREPARE1
+	{SPR_HIVE, 0,  6, A_PlaySound, sfx_s3k8c, 1, S_HIVEELEMENTAL_SHOOT1, 0}, // S_HIVEELEMENTAL_PREPARE2
+	{SPR_HIVE, 1,  4, A_WhoCaresIfYourSonIsABee, (MT_BUMBLEBORE<<16)|4, (1<<16)|32, S_HIVEELEMENTAL_SHOOT2, 0}, // S_HIVEELEMENTAL_SHOOT1
+	{SPR_HIVE, 2,  2, NULL, 0, 0, S_HIVEELEMENTAL_DORMANT, 0}, // S_HIVEELEMENTAL_SHOOT2
+	{SPR_HIVE, 0,  5, A_ParentTriesToSleep, S_HIVEELEMENTAL_PREPARE1, 0, S_HIVEELEMENTAL_DORMANT, 0}, // S_HIVEELEMENTAL_DORMANT
+	{SPR_HIVE, 3, 35, A_Pain, 0, 0, S_HIVEELEMENTAL_LOOK, 0}, // S_HIVEELEMENTAL_PAIN
+	{SPR_HIVE, 3,  2, A_BossScream, 1, 0, S_HIVEELEMENTAL_DIE2, 0}, // S_HIVEELEMENTAL_DIE1
+	{SPR_NULL, 0,  2, A_BossScream, 1, 0, S_HIVEELEMENTAL_DIE3, 0}, // S_HIVEELEMENTAL_DIE2
+	{SPR_NULL, 0,  0, A_Repeat, 7, S_HIVEELEMENTAL_DIE1, S_XPLD_FLICKY, 0}, // S_HIVEELEMENTAL_DIE3
+
+	{SPR_BUMB, 1, 10, NULL, 0, 0, S_BUMBLEBORE_LOOK1, 0}, // S_BUMBLEBORE_SPAWN
+	{SPR_BUMB, 0,  4, A_Look, 1, 1, S_BUMBLEBORE_LOOK2, 0}, // S_BUMBLEBORE_LOOK1
+	{SPR_BUMB, 1,  4, A_Look, 1, 1, S_BUMBLEBORE_LOOK1, 0}, // S_BUMBLEBORE_LOOK2
+	{SPR_BUMB, 0,  4, A_JetbThink, 0, 0, S_BUMBLEBORE_FLY2, 0}, // S_BUMBLEBORE_FLY1
+	{SPR_BUMB, 1,  4, A_JetbThink, 0, 0, S_BUMBLEBORE_FLY1, 0}, // S_BUMBLEBORE_FLY2
+	{SPR_BUMB, 2|FF_FULLBRIGHT,  12, A_ZThrust,  4, (1<<16)|1, S_BUMBLEBORE_FALL1, 0},  // S_BUMBLEBORE_RAISE
+	{SPR_BUMB, 2|FF_FULLBRIGHT,   0, A_ZThrust, -8, (1<<16)|1, S_BUMBLEBORE_FALL2, 0},  // S_BUMBLEBORE_FALL1
+	{SPR_BUMB, 2|FF_FULLBRIGHT, 300, NULL,       0,         0, S_BUMBLEBORE_DIE, 0},    // S_BUMBLEBORE_FALL2
+	{SPR_BUMB, 4, 3, A_MultiShotDist, (MT_DUST<<16)|6, -40, S_BUMBLEBORE_STUCK2, 0},    // S_BUMBLEBORE_STUCK1
+	{SPR_BUMB, 5, 120, NULL, 0, 0, S_BUMBLEBORE_DIE, 0}, // S_BUMBLEBORE_STUCK2
+	{SPR_BUMB, 5, 0, A_CryingToMomma, 0, 0, S_XPLD1, 0}, // S_BUMBLEBORE_DIE
+
+	{SPR_BBUZ,          0, -1, NULL, 0, 0, S_NULL, 0}, // S_BUGGLEIDLE
+	{SPR_BBUZ, FF_ANIMATE, -1, NULL, 1, 2, S_NULL, 0}, // S_BUGGLEFLY
+
+	{SPR_FMCE, 0, 20, NULL, 0, 0, S_SMASHSPIKE_EASE1, 0}, // S_SMASHSPIKE_FLOAT
+	{SPR_FMCE, 0,  4, A_ZThrust,  4, (1<<16)|1, S_SMASHSPIKE_EASE2, 0}, // S_SMASHSPIKE_EASE1
+	{SPR_FMCE, 0,  4, A_ZThrust,  0, (1<<16)|1, S_SMASHSPIKE_FALL, 0},  // S_SMASHSPIKE_EASE2
+	{SPR_FMCE, 0,  2, A_ZThrust, -6,         1, S_SMASHSPIKE_FALL, 0},  // S_SMASHSPIKE_FALL
+	{SPR_FMCE, 1,  2, A_MultiShotDist, (MT_DUST<<16)|10, -48, S_SMASHSPIKE_STOMP2, 0}, // S_SMASHSPIKE_STOMP1
+	{SPR_FMCE, 2, 14, NULL, 0, 0, S_SMASHSPIKE_RISE1, 0}, // S_SMASHSPIKE_STOMP2
+	{SPR_FMCE, 1,  2, NULL, 0, 0, S_SMASHSPIKE_RISE2, 0}, // S_SMASHSPIKE_RISE1
+	{SPR_FMCE, 0,  2, A_ZThrust, 6, (1<<16)|1, S_SMASHSPIKE_RISE2, 0}, // S_SMASHSPIKE_RISE2
+
+	{SPR_CACO, 0,  5, A_Look, (1100<<16)|1, 0, S_CACO_LOOK, 0}, // S_CACO_LOOK
+	{SPR_CACO, 1,  0, A_MultiShotDist, (MT_DUST<<16)|7, -48, S_CACO_WAKE2, 0}, // S_CACO_WAKE1
+	{SPR_CACO, 1, 10, A_ZThrust, 4, (1<<16)|1, S_CACO_WAKE3, 0}, // S_CACO_WAKE2
+	{SPR_CACO, 2,  8, A_ZThrust, 2, (1<<16)|1, S_CACO_WAKE4, 0}, // S_CACO_WAKE3
+	{SPR_CACO, 2,  4, A_ZThrust, 0, (1<<16)|1, S_CACO_ROAR, 0},  // S_CACO_WAKE4
+	{SPR_CACO, 2, 10, A_PlayActiveSound, 0, 0, S_CACO_CHASE, 0}, // S_CACO_ROAR
+	{SPR_CACO, 2,  5, A_JetChase, 0, 0, S_CACO_CHASE_REPEAT, 0}, // S_CACO_CHASE
+	{SPR_CACO, 2,  0, A_Repeat, 5, S_CACO_CHASE, S_CACO_RANDOM, 0}, // S_CACO_CHASE_REPEAT
+	{SPR_CACO, 2,  0, A_RandomState, S_CACO_PREPARE_SOUND, S_CACO_CHASE, S_CACO_RANDOM, 0}, // S_CACO_RANDOM
+	{SPR_CACO, 2,  8, A_PlaySound, sfx_s3k95, 1, S_CACO_PREPARE1, 0},  // S_CACO_PREPARE_SOUND
+	{SPR_CACO, 3,               8, NULL, 0, 0, S_CACO_PREPARE2, 0},    // S_CACO_PREPARE1
+	{SPR_CACO, 4|FF_FULLBRIGHT, 8, NULL, 0, 0, S_CACO_PREPARE3, 0},    // S_CACO_PREPARE2
+	{SPR_CACO, 5|FF_FULLBRIGHT, 8, NULL, 0, 0, S_CACO_SHOOT_SOUND, 0}, // S_CACO_PREPARE3
+	{SPR_CACO, 4|FF_FULLBRIGHT, 0, A_PlaySound, sfx_s3k4e, 1, S_CACO_SHOOT1, 0}, // S_CACO_SHOOT_SOUND
+	{SPR_CACO, 4|FF_FULLBRIGHT, 0, A_SpawnParticleRelative, 0, S_CACOFIRE_EXPLODE1, S_CACO_SHOOT2, 0}, // S_CACO_SHOOT1
+	{SPR_CACO, 4|FF_FULLBRIGHT, 6, A_FireShot, MT_CACOFIRE, -24, S_CACO_CLOSE, 0}, // S_CACO_SHOOT2
+	{SPR_CACO, 3,              15, NULL, 0, 0, S_CACO_CHASE, 0}, // S_CACO_CLOSE
+	{SPR_CACO, 10, 0, A_SetObjectFlags, MF_NOBLOCKMAP, 0, S_CACO_DIE_GIB1, 0}, // S_CACO_DIE_FLAGS
+	{SPR_CACO, 10, 0, A_NapalmScatter, (7<<16)|MT_CACOSHARD, (30<<16)|20, S_CACO_DIE_GIB2, 0}, // S_CACO_DIE_GIB1
+	{SPR_CACO, 10, 0, A_NapalmScatter, (10<<16)|MT_CACOSHARD, (24<<16)|32, S_CACO_DIE_SCREAM, 0}, // S_CACO_DIE_GIB2
+	{SPR_CACO, 10, 0, A_Scream, 0, 0, S_CACO_DIE_SHATTER, 0}, // S_CACO_DIE_SCREAM
+	{SPR_CACO, 10, 0, A_PlaySound, sfx_pumpkn, 1, S_CACO_DIE_FALL, 0}, // S_CACO_DIE_SHATTER
+	{SPR_CACO, 10, 250, A_FlickySpawn, (1<<16), 0, S_NULL, 0}, // S_CACO_DIE_FALL
+
+	{SPR_CACO, 6, 0, A_RandomState, S_CACOSHARD1_1, S_CACOSHARD2_1, S_NULL, 0}, // S_CACOSHARD_RANDOMIZE
+	{SPR_CACO, 6, 3, NULL, 0, 0, S_CACOSHARD1_2, 0}, // S_CACOSHARD1_1
+	{SPR_CACO, 7, 3, NULL, 0, 0, S_CACOSHARD1_1, 0}, // S_CACOSHARD1_2
+	{SPR_CACO, 8, 3, NULL, 0, 0, S_CACOSHARD2_2, 0}, // S_CACOSHARD2_1
+	{SPR_CACO, 9, 3, NULL, 0, 0, S_CACOSHARD2_1, 0}, // S_CACOSHARD2_2
+	{SPR_BAL2,   FF_FULLBRIGHT, 2, A_GhostMe, 0, 0, S_CACOFIRE2, 0}, // S_CACOFIRE1
+	{SPR_BAL2, 1|FF_FULLBRIGHT, 2, A_GhostMe, 0, 0, S_CACOFIRE3, 0}, // S_CACOFIRE2
+	{SPR_BAL2,   FF_FULLBRIGHT, 0, A_PlayActiveSound, 0, 0, S_CACOFIRE1, 0}, // S_CACOFIRE3
+	{SPR_BAL2, 2|FF_FULLBRIGHT, 2, NULL, 0, 0, S_CACOFIRE_EXPLODE2, 0}, // S_CACOFIRE_EXPLODE1
+	{SPR_BAL2, 3|FF_FULLBRIGHT, 2, NULL, 0, 0, S_CACOFIRE_EXPLODE3, 0}, // S_CACOFIRE_EXPLODE2
+	{SPR_BAL2, 4|FF_FULLBRIGHT, 2, NULL, 0, 0, S_CACOFIRE_EXPLODE4, 0}, // S_CACOFIRE_EXPLODE3
+	{SPR_BAL2, 5|FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0},      // S_CACOFIRE_EXPLODE4
+
+	{SPR_SBOB, 1, 10, A_ZThrust, -2, (1<<16)|1, S_SPINBOBERT_MOVE_UP, 0},       // S_SPINBOBERT_MOVE_FLIPUP
+	{SPR_SBOB, 0, 45, A_ZThrust,  4, (1<<16)|1, S_SPINBOBERT_MOVE_FLIPDOWN, 0}, // S_SPINBOBERT_MOVE_UP
+	{SPR_SBOB, 1, 10, A_ZThrust,  2, (1<<16)|1, S_SPINBOBERT_MOVE_DOWN, 0},     // S_SPINBOBERT_MOVE_FLIPDOWN
+	{SPR_SBOB, 2, 45, A_ZThrust, -4, (1<<16)|1, S_SPINBOBERT_MOVE_FLIPUP, 0},   // S_SPINBOBERT_MOVE_DOWN
+	{SPR_SBSK, FF_FULLBRIGHT, 1, A_RotateSpikeBall,       0,                        0, S_SPINBOBERT_FIRE_GHOST, 0}, // S_SPINBOBERT_FIRE_MOVE
+	{SPR_SBSK, FF_FULLBRIGHT, 0, A_SpawnParticleRelative, 0, S_SPINBOBERT_FIRE_TRAIL1, S_SPINBOBERT_FIRE_MOVE, 0},  // S_SPINBOBERT_FIRE_GHOST
+	{SPR_SBFL, 2|FF_FULLBRIGHT, 2, NULL, 0, 0, S_SPINBOBERT_FIRE_TRAIL2, 0}, // S_SPINBOBERT_FIRE_TRAIL1
+	{SPR_SBFL, 1|FF_FULLBRIGHT, 2, NULL, 0, 0, S_SPINBOBERT_FIRE_TRAIL3, 0}, // S_SPINBOBERT_FIRE_TRAIL2
+	{SPR_SBFL,   FF_FULLBRIGHT, 2, NULL, 0, 0, S_NULL, 0},                   // S_SPINBOBERT_FIRE_TRAIL3
+
+	{SPR_HBAT, 0,  5, A_Look, (900<<16)|1, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_LOOK
+	{SPR_HBAT, 1,  0, A_MultiShotDist, (MT_DUST<<16)|10, -34, S_HANGSTER_SWOOP2, 0}, // S_HANGSTER_SWOOP1
+	{SPR_HBAT, 1,  2, A_ZThrust, -8, (1<<16)|1, S_HANGSTER_SWOOP2, 0}, // S_HANGSTER_SWOOP2
+	{SPR_HBAT, 1,  6, A_ZThrust, -5, (1<<16), S_HANGSTER_ARC2, 0}, // S_HANGSTER_ARC1
+	{SPR_HBAT, 1,  5, A_ZThrust, -2, (1<<16), S_HANGSTER_ARC3, 0}, // S_HANGSTER_ARC2
+	{SPR_HBAT, 1,  1, A_ZThrust,  0, (1<<16), S_HANGSTER_FLY1, 0}, // S_HANGSTER_ARC3
+	{SPR_HBAT, 1,  4, A_Thrust, 6, 1, S_HANGSTER_FLY2, 0}, // S_HANGSTER_FLY1
+	{SPR_HBAT, 2,  1, A_PlaySound, sfx_s3k52, 1, S_HANGSTER_FLY3, 0}, // S_HANGSTER_FLY2
+	{SPR_HBAT, 3,  4, A_Thrust, 6, 1, S_HANGSTER_FLY4, 0}, // S_HANGSTER_FLY3
+	{SPR_HBAT, 2,  1, A_Thrust, 6, 1, S_HANGSTER_FLYREPEAT, 0}, // S_HANGSTER_FLY4
+	{SPR_HBAT, 2,  0, A_Repeat, 12, S_HANGSTER_FLY1, S_HANGSTER_ARCUP1, 0}, // S_HANGSTER_FLYREPEAT
+	{SPR_HBAT, 1,  5, A_ZThrust,  2, (1<<16), S_HANGSTER_ARCUP2, 0}, // S_HANGSTER_ARCUP1
+	{SPR_HBAT, 1,  6, A_ZThrust,  5, (1<<16), S_HANGSTER_ARCUP3, 0}, // S_HANGSTER_ARCUP2
+	{SPR_HBAT, 1,  1, A_ZThrust,  0, (1<<16), S_HANGSTER_RETURN1, 0}, // S_HANGSTER_ARCUP3
+	{SPR_HBAT, 1,  1, A_ZThrust,  8, (1<<16), S_HANGSTER_RETURN2, 0}, // S_HANGSTER_RETURN1
+	{SPR_HBAT, 3,  1, NULL, 0, 0, S_HANGSTER_RETURN1, 0}, // S_HANGSTER_RETURN2
+	{SPR_HBAT, 0, 15, NULL, 0, 0, S_HANGSTER_LOOK, 0}, // S_HANGSTER_RETURN3
+
+	{SPR_NULL, 0,  35, NULL, 0, 0, S_CRUMBLE2, 0}, // S_CRUMBLE1
+	{SPR_NULL, 0, 105, A_Scream, 0, 0, S_NULL, 0}, // S_CRUMBLE2
 
 	// Spark
-	{SPR_NULL, 0, 1, {A_ModuloToState}, 2, S_SPRK2, S_SPRK3, 0},  // S_SPRK1
-	{SPR_SPRK, FF_TRANS20|FF_ANIMATE|0, 18, {NULL}, 8, 2, S_NULL, 0},  // S_SPRK2
-	{SPR_SPRK, FF_TRANS20|FF_ANIMATE|9, 18, {NULL}, 8, 2, S_NULL, 0},  // S_SPRK3
+	{SPR_NULL, 0, 1, A_ModuloToState, 2, S_SPRK2, S_SPRK3, 0},  // S_SPRK1
+	{SPR_SPRK, FF_TRANS20|FF_ANIMATE|0, 18, NULL, 8, 2, S_NULL, 0},  // S_SPRK2
+	{SPR_SPRK, FF_TRANS20|FF_ANIMATE|9, 18, NULL, 8, 2, S_NULL, 0},  // S_SPRK3
 
 	// Robot Explosion
-	{SPR_BOM1, 0, 0, {A_FlickySpawn},  0, 0, S_XPLD1, 0}, // S_XPLD_FLICKY
-	{SPR_BOM1, 0, 2, {A_ShadowScream}, 0, 0, S_XPLD2, 0}, // S_XPLD1
-	{SPR_BOM1, 1, 2, {NULL},           0, 0, S_XPLD3, 0}, // S_XPLD2
-	{SPR_BOM1, 2, 3, {NULL},           0, 0, S_XPLD4, 0}, // S_XPLD3
-	{SPR_BOM1, 3, 3, {NULL},           0, 0, S_XPLD5, 0}, // S_XPLD4
-	{SPR_BOM1, 4, 4, {NULL},           0, 0, S_XPLD6, 0}, // S_XPLD5
-	{SPR_BOM1, 5, 4, {NULL},           0, 0, S_NULL, 0},  // S_XPLD6
+	{SPR_BOM1, 0, 0, A_FlickySpawn,  0, 0, S_XPLD1, 0}, // S_XPLD_FLICKY
+	{SPR_BOM1, 0, 2, A_ShadowScream, 0, 0, S_XPLD2, 0}, // S_XPLD1
+	{SPR_BOM1, 1, 2, NULL,           0, 0, S_XPLD3, 0}, // S_XPLD2
+	{SPR_BOM1, 2, 3, NULL,           0, 0, S_XPLD4, 0}, // S_XPLD3
+	{SPR_BOM1, 3, 3, NULL,           0, 0, S_XPLD5, 0}, // S_XPLD4
+	{SPR_BOM1, 4, 4, NULL,           0, 0, S_XPLD6, 0}, // S_XPLD5
+	{SPR_BOM1, 5, 4, NULL,           0, 0, S_NULL, 0},  // S_XPLD6
 
-	{SPR_BOM1, FF_ANIMATE,   21, {NULL},          5, 4, S_INVISIBLE, 0}, // S_XPLD_EGGTRAP
+	{SPR_BOM1, FF_ANIMATE,   21, NULL,          5, 4, S_INVISIBLE, 0}, // S_XPLD_EGGTRAP
 
 	// Underwater Explosion
-	{SPR_BOM4, 0, 3, {A_ShadowScream}, 0, 0, S_WPLD2, 0}, // S_WPLD1
-	{SPR_BOM4, 1, 3, {NULL},           0, 0, S_WPLD3, 0}, // S_WPLD2
-	{SPR_BOM4, 2, 3, {NULL},           0, 0, S_WPLD4, 0}, // S_WPLD3
-	{SPR_BOM4, 3, 3, {NULL},           0, 0, S_WPLD5, 0}, // S_WPLD4
-	{SPR_BOM4, 4, 3, {NULL},           0, 0, S_WPLD6, 0}, // S_WPLD5
-	{SPR_BOM4, 5, 3, {NULL},           0, 0, S_NULL, 0},  // S_WPLD6
-
-	{SPR_DUST,   FF_TRANS40, 4, {NULL}, 0, 0, S_DUST2, 0}, // S_DUST1
-	{SPR_DUST, 1|FF_TRANS50, 5, {NULL}, 0, 0, S_DUST3, 0}, // S_DUST2
-	{SPR_DUST, 2|FF_TRANS60, 3, {NULL}, 0, 0, S_DUST4, 0}, // S_DUST3
-	{SPR_DUST, 3|FF_TRANS70, 2, {NULL}, 0, 0, S_NULL, 0},  // S_DUST4
-
-	{SPR_NULL, 0, 1, {A_RockSpawn}, 0, 0, S_ROCKSPAWN, 0}, // S_ROCKSPAWN
-
-	{SPR_ROIA, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEA
-	{SPR_ROIB, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEB
-	{SPR_ROIC, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEC
-	{SPR_ROID, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLED
-	{SPR_ROIE, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEE
-	{SPR_ROIF, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEF
-	{SPR_ROIG, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEG
-	{SPR_ROIH, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEH
-	{SPR_ROII, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEI
-	{SPR_ROIJ, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEJ
-	{SPR_ROIK, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEK
-	{SPR_ROIL, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEL
-	{SPR_ROIM, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEM
-	{SPR_ROIN, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEN
-	{SPR_ROIO, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEO
-	{SPR_ROIP, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEP
-
-	{SPR_GFZD, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_GFZDEBRIS
-	{SPR_BRIC, FF_ANIMATE, -1, {A_DebrisRandom}, 7, 2, S_NULL, 0}, // S_BRICKDEBRIS
-	{SPR_WDDB, FF_ANIMATE, -1, {A_DebrisRandom}, 7, 2, S_NULL, 0}, // S_WOODDEBRIS
-	{SPR_BRIR, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_REDBRICKDEBRIS
-	{SPR_BRIB, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_BLUEBRICKDEBRIS
-	{SPR_BRIY, FF_ANIMATE|FF_RANDOMANIM, -1, {NULL}, 31, 1, S_NULL, 0}, // S_YELLOWBRICKDEBRIS
-
-	{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL, 0}, // S_NAMECHECK
-
-	{SPR_OLDK, FF_ANIMATE, -1, {NULL}, 1, 16, S_NULL, 0}, // S_OLDK_STND
-	{SPR_OLDK, 2, 0, {A_ForceWin}, 0, 0, S_OLDK_DIE1, 0}, // S_OLDK_DIE0
-	{SPR_OLDK, 2, 0, {A_Scream}, 0, 0, S_OLDK_DIE2, 0}, // S_OLDK_DIE1
-	{SPR_OLDK, 2, -1, {A_ZThrust}, 14, 1|(1<<16), S_NULL, 0}, // S_OLDK_DIE2
+	{SPR_BOM4, 0, 3, A_ShadowScream, 0, 0, S_WPLD2, 0}, // S_WPLD1
+	{SPR_BOM4, 1, 3, NULL,           0, 0, S_WPLD3, 0}, // S_WPLD2
+	{SPR_BOM4, 2, 3, NULL,           0, 0, S_WPLD4, 0}, // S_WPLD3
+	{SPR_BOM4, 3, 3, NULL,           0, 0, S_WPLD5, 0}, // S_WPLD4
+	{SPR_BOM4, 4, 3, NULL,           0, 0, S_WPLD6, 0}, // S_WPLD5
+	{SPR_BOM4, 5, 3, NULL,           0, 0, S_NULL, 0},  // S_WPLD6
+
+	{SPR_DUST,   FF_TRANS40, 4, NULL, 0, 0, S_DUST2, 0}, // S_DUST1
+	{SPR_DUST, 1|FF_TRANS50, 5, NULL, 0, 0, S_DUST3, 0}, // S_DUST2
+	{SPR_DUST, 2|FF_TRANS60, 3, NULL, 0, 0, S_DUST4, 0}, // S_DUST3
+	{SPR_DUST, 3|FF_TRANS70, 2, NULL, 0, 0, S_NULL, 0},  // S_DUST4
+
+	{SPR_NULL, 0, 1, A_RockSpawn, 0, 0, S_ROCKSPAWN, 0}, // S_ROCKSPAWN
+
+	{SPR_ROIA, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEA
+	{SPR_ROIB, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEB
+	{SPR_ROIC, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEC
+	{SPR_ROID, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLED
+	{SPR_ROIE, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEE
+	{SPR_ROIF, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEF
+	{SPR_ROIG, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEG
+	{SPR_ROIH, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEH
+	{SPR_ROII, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEI
+	{SPR_ROIJ, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEJ
+	{SPR_ROIK, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 4, 2, S_NULL, 0}, // S_ROCKCRUMBLEK
+	{SPR_ROIL, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEL
+	{SPR_ROIM, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEM
+	{SPR_ROIN, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEN
+	{SPR_ROIO, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEO
+	{SPR_ROIP, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 7, 2, S_NULL, 0}, // S_ROCKCRUMBLEP
+
+	{SPR_GFZD, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 31, 1, S_NULL, 0}, // S_GFZDEBRIS
+	{SPR_BRIC, FF_ANIMATE, -1, A_DebrisRandom, 7, 2, S_NULL, 0}, // S_BRICKDEBRIS
+	{SPR_WDDB, FF_ANIMATE, -1, A_DebrisRandom, 7, 2, S_NULL, 0}, // S_WOODDEBRIS
+	{SPR_BRIR, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 31, 1, S_NULL, 0}, // S_REDBRICKDEBRIS
+	{SPR_BRIB, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 31, 1, S_NULL, 0}, // S_BLUEBRICKDEBRIS
+	{SPR_BRIY, FF_ANIMATE|FF_RANDOMANIM, -1, NULL, 31, 1, S_NULL, 0}, // S_YELLOWBRICKDEBRIS
+
+	{SPR_NULL, 0, 1, NULL, 0, 0, S_NULL, 0}, // S_NAMECHECK
+
+	{SPR_OLDK, FF_ANIMATE, -1, NULL, 1, 16, S_NULL, 0}, // S_OLDK_STND
+	{SPR_OLDK, 2, 0, A_ForceWin, 0, 0, S_OLDK_DIE1, 0}, // S_OLDK_DIE0
+	{SPR_OLDK, 2, 0, A_Scream, 0, 0, S_OLDK_DIE2, 0}, // S_OLDK_DIE1
+	{SPR_OLDK, 2, -1, A_ZThrust, 14, 1|(1<<16), S_NULL, 0}, // S_OLDK_DIE2
 };
 
 mobjinfo_t mobjinfo[NUMMOBJTYPES] =
diff --git a/src/info.h b/src/info.h
index 94b0aeb481..b438b21b98 100644
--- a/src/info.h
+++ b/src/info.h
@@ -302,274 +302,274 @@ struct mobj_s;
 
 // IMPORTANT NOTE: If you add/remove from this list of action
 // functions, don't forget to update them in deh_tables.c!
-void A_Explode(struct mobj_s *actor);
-void A_Pain(struct mobj_s *actor);
-void A_Fall(struct mobj_s *actor);
-void A_MonitorPop(struct mobj_s *actor);
-void A_GoldMonitorPop(struct mobj_s *actor);
-void A_GoldMonitorRestore(struct mobj_s *actor);
-void A_GoldMonitorSparkle(struct mobj_s *actor);
-void A_Look(struct mobj_s *actor);
-void A_Chase(struct mobj_s *actor);
-void A_FaceStabChase(struct mobj_s *actor);
-void A_FaceStabRev(struct mobj_s *actor);
-void A_FaceStabHurl(struct mobj_s *actor);
-void A_FaceStabMiss(struct mobj_s *actor);
-void A_StatueBurst(struct mobj_s *actor);
-void A_FaceTarget(struct mobj_s *actor);
-void A_FaceTracer(struct mobj_s *actor);
-void A_Scream(struct mobj_s *actor);
-void A_BossDeath(struct mobj_s *actor);
-void A_SetShadowScale(struct mobj_s *actor);
-void A_ShadowScream(struct mobj_s *actor); // MARIA!!!!!!
-void A_CustomPower(struct mobj_s *actor); // Use this for a custom power
-void A_GiveWeapon(struct mobj_s *actor); // Gives the player weapon(s)
-void A_RingBox(struct mobj_s *actor); // Obtained Ring Box Tails
-void A_Invincibility(struct mobj_s *actor); // Obtained Invincibility Box
-void A_SuperSneakers(struct mobj_s *actor); // Obtained Super Sneakers Box
-void A_BunnyHop(struct mobj_s *actor); // have bunny hop tails
-void A_BubbleSpawn(struct mobj_s *actor); // Randomly spawn bubbles
-void A_FanBubbleSpawn(struct mobj_s *actor);
-void A_BubbleRise(struct mobj_s *actor); // Bubbles float to surface
-void A_BubbleCheck(struct mobj_s *actor); // Don't draw if not underwater
-void A_AwardScore(struct mobj_s *actor);
-void A_ExtraLife(struct mobj_s *actor); // Extra Life
-void A_GiveShield(struct mobj_s *actor); // Obtained Shield
-void A_GravityBox(struct mobj_s *actor);
-void A_ScoreRise(struct mobj_s *actor); // Rise the score logo
-void A_AttractChase(struct mobj_s *actor); // Ring Chase
-void A_DropMine(struct mobj_s *actor); // Drop Mine from Skim or Jetty-Syn Bomber
-void A_FishJump(struct mobj_s *actor); // Fish Jump
-void A_ThrownRing(struct mobj_s *actor); // Sparkle trail for red ring
-void A_SetSolidSteam(struct mobj_s *actor);
-void A_UnsetSolidSteam(struct mobj_s *actor);
-void A_SignSpin(struct mobj_s *actor);
-void A_SignPlayer(struct mobj_s *actor);
-void A_OverlayThink(struct mobj_s *actor);
-void A_JetChase(struct mobj_s *actor);
-void A_JetbThink(struct mobj_s *actor); // Jetty-Syn Bomber Thinker
-void A_JetgThink(struct mobj_s *actor); // Jetty-Syn Gunner Thinker
-void A_JetgShoot(struct mobj_s *actor); // Jetty-Syn Shoot Function
-void A_ShootBullet(struct mobj_s *actor); // JetgShoot without reactiontime setting
-void A_MinusDigging(struct mobj_s *actor);
-void A_MinusPopup(struct mobj_s *actor);
-void A_MinusCheck(struct mobj_s *actor);
-void A_ChickenCheck(struct mobj_s *actor);
-void A_MouseThink(struct mobj_s *actor); // Mouse Thinker
-void A_DetonChase(struct mobj_s *actor); // Deton Chaser
-void A_CapeChase(struct mobj_s *actor); // Fake little Super Sonic cape
-void A_RotateSpikeBall(struct mobj_s *actor); // Spike ball rotation
-void A_SlingAppear(struct mobj_s *actor);
-void A_UnidusBall(struct mobj_s *actor);
-void A_RockSpawn(struct mobj_s *actor);
-void A_SetFuse(struct mobj_s *actor);
-void A_CrawlaCommanderThink(struct mobj_s *actor); // Crawla Commander
-void A_SmokeTrailer(struct mobj_s *actor);
-void A_RingExplode(struct mobj_s *actor);
-void A_OldRingExplode(struct mobj_s *actor);
-void A_MixUp(struct mobj_s *actor);
-void A_RecyclePowers(struct mobj_s *actor);
-void A_BossScream(struct mobj_s *actor);
-void A_Boss2TakeDamage(struct mobj_s *actor);
-void A_GoopSplat(struct mobj_s *actor);
-void A_Boss2PogoSFX(struct mobj_s *actor);
-void A_Boss2PogoTarget(struct mobj_s *actor);
-void A_EggmanBox(struct mobj_s *actor);
-void A_TurretFire(struct mobj_s *actor);
-void A_SuperTurretFire(struct mobj_s *actor);
-void A_TurretStop(struct mobj_s *actor);
-void A_JetJawRoam(struct mobj_s *actor);
-void A_JetJawChomp(struct mobj_s *actor);
-void A_PointyThink(struct mobj_s *actor);
-void A_CheckBuddy(struct mobj_s *actor);
-void A_HoodFire(struct mobj_s *actor);
-void A_HoodThink(struct mobj_s *actor);
-void A_HoodFall(struct mobj_s *actor);
-void A_ArrowBonks(struct mobj_s *actor);
-void A_SnailerThink(struct mobj_s *actor);
-void A_SharpChase(struct mobj_s *actor);
-void A_SharpSpin(struct mobj_s *actor);
-void A_SharpDecel(struct mobj_s *actor);
-void A_CrushstaceanWalk(struct mobj_s *actor);
-void A_CrushstaceanPunch(struct mobj_s *actor);
-void A_CrushclawAim(struct mobj_s *actor);
-void A_CrushclawLaunch(struct mobj_s *actor);
-void A_VultureVtol(struct mobj_s *actor);
-void A_VultureCheck(struct mobj_s *actor);
-void A_VultureHover(struct mobj_s *actor);
-void A_VultureBlast(struct mobj_s *actor);
-void A_VultureFly(struct mobj_s *actor);
-void A_SkimChase(struct mobj_s *actor);
-void A_SkullAttack(struct mobj_s *actor);
-void A_LobShot(struct mobj_s *actor);
-void A_FireShot(struct mobj_s *actor);
-void A_SuperFireShot(struct mobj_s *actor);
-void A_BossFireShot(struct mobj_s *actor);
-void A_Boss7FireMissiles(struct mobj_s *actor);
-void A_Boss1Laser(struct mobj_s *actor);
-void A_FocusTarget(struct mobj_s *actor);
-void A_Boss4Reverse(struct mobj_s *actor);
-void A_Boss4SpeedUp(struct mobj_s *actor);
-void A_Boss4Raise(struct mobj_s *actor);
-void A_SparkFollow(struct mobj_s *actor);
-void A_BuzzFly(struct mobj_s *actor);
-void A_GuardChase(struct mobj_s *actor);
-void A_EggShield(struct mobj_s *actor);
-void A_SetReactionTime(struct mobj_s *actor);
-void A_Boss1Spikeballs(struct mobj_s *actor);
-void A_Boss3TakeDamage(struct mobj_s *actor);
-void A_Boss3Path(struct mobj_s *actor);
-void A_Boss3ShockThink(struct mobj_s *actor);
-void A_Shockwave(struct mobj_s *actor);
-void A_LinedefExecute(struct mobj_s *actor);
-void A_LinedefExecuteFromArg(struct mobj_s *actor);
-void A_PlaySeeSound(struct mobj_s *actor);
-void A_PlayAttackSound(struct mobj_s *actor);
-void A_PlayActiveSound(struct mobj_s *actor);
-void A_1upThinker(struct mobj_s *actor);
-void A_BossZoom(struct mobj_s *actor); //Unused
-void A_Boss1Chase(struct mobj_s *actor);
-void A_Boss2Chase(struct mobj_s *actor);
-void A_Boss2Pogo(struct mobj_s *actor);
-void A_Boss7Chase(struct mobj_s *actor);
-void A_BossJetFume(struct mobj_s *actor);
-void A_SpawnObjectAbsolute(struct mobj_s *actor);
-void A_SpawnObjectRelative(struct mobj_s *actor);
-void A_ChangeAngleRelative(struct mobj_s *actor);
-void A_ChangeAngleAbsolute(struct mobj_s *actor);
-void A_RollAngle(struct mobj_s *actor);
-void A_ChangeRollAngleRelative(struct mobj_s *actor);
-void A_ChangeRollAngleAbsolute(struct mobj_s *actor);
-void A_PlaySound(struct mobj_s *actor);
-void A_FindTarget(struct mobj_s *actor);
-void A_FindTracer(struct mobj_s *actor);
-void A_SetTics(struct mobj_s *actor);
-void A_SetRandomTics(struct mobj_s *actor);
-void A_ChangeColorRelative(struct mobj_s *actor);
-void A_ChangeColorAbsolute(struct mobj_s *actor);
-void A_Dye(struct mobj_s *actor);
-void A_SetTranslation(struct mobj_s *actor);
-void A_MoveRelative(struct mobj_s *actor);
-void A_MoveAbsolute(struct mobj_s *actor);
-void A_Thrust(struct mobj_s *actor);
-void A_ZThrust(struct mobj_s *actor);
-void A_SetTargetsTarget(struct mobj_s *actor);
-void A_SetObjectFlags(struct mobj_s *actor);
-void A_SetObjectFlags2(struct mobj_s *actor);
-void A_RandomState(struct mobj_s *actor);
-void A_RandomStateRange(struct mobj_s *actor);
-void A_StateRangeByAngle(struct mobj_s *actor);
-void A_StateRangeByParameter(struct mobj_s *actor);
-void A_DualAction(struct mobj_s *actor);
-void A_RemoteAction(struct mobj_s *actor);
-void A_ToggleFlameJet(struct mobj_s *actor);
-void A_OrbitNights(struct mobj_s *actor);
-void A_GhostMe(struct mobj_s *actor);
-void A_SetObjectState(struct mobj_s *actor);
-void A_SetObjectTypeState(struct mobj_s *actor);
-void A_KnockBack(struct mobj_s *actor);
-void A_PushAway(struct mobj_s *actor);
-void A_RingDrain(struct mobj_s *actor);
-void A_SplitShot(struct mobj_s *actor);
-void A_MissileSplit(struct mobj_s *actor);
-void A_MultiShot(struct mobj_s *actor);
-void A_InstaLoop(struct mobj_s *actor);
-void A_Custom3DRotate(struct mobj_s *actor);
-void A_SearchForPlayers(struct mobj_s *actor);
-void A_CheckRandom(struct mobj_s *actor);
-void A_CheckTargetRings(struct mobj_s *actor);
-void A_CheckRings(struct mobj_s *actor);
-void A_CheckTotalRings(struct mobj_s *actor);
-void A_CheckHealth(struct mobj_s *actor);
-void A_CheckRange(struct mobj_s *actor);
-void A_CheckHeight(struct mobj_s *actor);
-void A_CheckTrueRange(struct mobj_s *actor);
-void A_CheckThingCount(struct mobj_s *actor);
-void A_CheckAmbush(struct mobj_s *actor);
-void A_CheckCustomValue(struct mobj_s *actor);
-void A_CheckCusValMemo(struct mobj_s *actor);
-void A_SetCustomValue(struct mobj_s *actor);
-void A_UseCusValMemo(struct mobj_s *actor);
-void A_RelayCustomValue(struct mobj_s *actor);
-void A_CusValAction(struct mobj_s *actor);
-void A_ForceStop(struct mobj_s *actor);
-void A_ForceWin(struct mobj_s *actor);
-void A_SpikeRetract(struct mobj_s *actor);
-void A_InfoState(struct mobj_s *actor);
-void A_Repeat(struct mobj_s *actor);
-void A_SetScale(struct mobj_s *actor);
-void A_RemoteDamage(struct mobj_s *actor);
-void A_HomingChase(struct mobj_s *actor);
-void A_TrapShot(struct mobj_s *actor);
-void A_VileTarget(struct mobj_s *actor);
-void A_VileAttack(struct mobj_s *actor);
-void A_VileFire(struct mobj_s *actor);
-void A_BrakChase(struct mobj_s *actor);
-void A_BrakFireShot(struct mobj_s *actor);
-void A_BrakLobShot(struct mobj_s *actor);
-void A_NapalmScatter(struct mobj_s *actor);
-void A_SpawnFreshCopy(struct mobj_s *actor);
-void A_FlickySpawn(struct mobj_s *actor);
-void A_FlickyCenter(struct mobj_s *actor);
-void A_FlickyAim(struct mobj_s *actor);
-void A_FlickyFly(struct mobj_s *actor);
-void A_FlickySoar(struct mobj_s *actor);
-void A_FlickyCoast(struct mobj_s *actor);
-void A_FlickyHop(struct mobj_s *actor);
-void A_FlickyFlounder(struct mobj_s *actor);
-void A_FlickyCheck(struct mobj_s *actor);
-void A_FlickyHeightCheck(struct mobj_s *actor);
-void A_FlickyFlutter(struct mobj_s *actor);
-void A_FlameParticle(struct mobj_s *actor);
-void A_FadeOverlay(struct mobj_s *actor);
-void A_Boss5Jump(struct mobj_s *actor);
-void A_LightBeamReset(struct mobj_s *actor);
-void A_MineExplode(struct mobj_s *actor);
-void A_MineRange(struct mobj_s *actor);
-void A_ConnectToGround(struct mobj_s *actor);
-void A_SpawnParticleRelative(struct mobj_s *actor);
-void A_MultiShotDist(struct mobj_s *actor);
-void A_WhoCaresIfYourSonIsABee(struct mobj_s *actor);
-void A_ParentTriesToSleep(struct mobj_s *actor);
-void A_CryingToMomma(struct mobj_s *actor);
-void A_CheckFlags2(struct mobj_s *actor);
-void A_Boss5FindWaypoint(struct mobj_s *actor);
-void A_DoNPCSkid(struct mobj_s *actor);
-void A_DoNPCPain(struct mobj_s *actor);
-void A_PrepareRepeat(struct mobj_s *actor);
-void A_Boss5ExtraRepeat(struct mobj_s *actor);
-void A_Boss5Calm(struct mobj_s *actor);
-void A_Boss5CheckOnGround(struct mobj_s *actor);
-void A_Boss5CheckFalling(struct mobj_s *actor);
-void A_Boss5PinchShot(struct mobj_s *actor);
-void A_Boss5MakeItRain(struct mobj_s *actor);
-void A_Boss5MakeJunk(struct mobj_s *actor);
-void A_LookForBetter(struct mobj_s *actor);
-void A_Boss5BombExplode(struct mobj_s *actor);
-void A_DustDevilThink(struct mobj_s *actor);
-void A_TNTExplode(struct mobj_s *actor);
-void A_DebrisRandom(struct mobj_s *actor);
-void A_TrainCameo(struct mobj_s *actor);
-void A_TrainCameo2(struct mobj_s *actor);
-void A_CanarivoreGas(struct mobj_s *actor);
-void A_KillSegments(struct mobj_s *actor);
-void A_SnapperSpawn(struct mobj_s *actor);
-void A_SnapperThinker(struct mobj_s *actor);
-void A_SaloonDoorSpawn(struct mobj_s *actor);
-void A_MinecartSparkThink(struct mobj_s *actor);
-void A_ModuloToState(struct mobj_s *actor);
-void A_LavafallRocks(struct mobj_s *actor);
-void A_LavafallLava(struct mobj_s *actor);
-void A_FallingLavaCheck(struct mobj_s *actor);
-void A_FireShrink(struct mobj_s *actor);
-void A_SpawnPterabytes(struct mobj_s *actor);
-void A_PterabyteHover(struct mobj_s *actor);
-void A_RolloutSpawn(struct mobj_s *actor);
-void A_RolloutRock(struct mobj_s *actor);
-void A_DragonbomberSpawn(struct mobj_s *actor);
-void A_DragonWing(struct mobj_s *actor);
-void A_DragonSegment(struct mobj_s *actor);
-void A_ChangeHeight(struct mobj_s *actor);
+void A_Explode(void *actor);
+void A_Pain(void *actor);
+void A_Fall(void *actor);
+void A_MonitorPop(void *actor);
+void A_GoldMonitorPop(void *actor);
+void A_GoldMonitorRestore(void *actor);
+void A_GoldMonitorSparkle(void *actor);
+void A_Look(void *actor);
+void A_Chase(void *actor);
+void A_FaceStabChase(void *actor);
+void A_FaceStabRev(void *actor);
+void A_FaceStabHurl(void *actor);
+void A_FaceStabMiss(void *actor);
+void A_StatueBurst(void *actor);
+void A_FaceTarget(void *actor);
+void A_FaceTracer(void *actor);
+void A_Scream(void *actor);
+void A_BossDeath(void *actor);
+void A_SetShadowScale(void *actor);
+void A_ShadowScream(void *actor); // MARIA!!!!!!
+void A_CustomPower(void *actor); // Use this for a custom power
+void A_GiveWeapon(void *actor); // Gives the player weapon(s)
+void A_RingBox(void *actor); // Obtained Ring Box Tails
+void A_Invincibility(void *actor); // Obtained Invincibility Box
+void A_SuperSneakers(void *actor); // Obtained Super Sneakers Box
+void A_BunnyHop(void *actor); // have bunny hop tails
+void A_BubbleSpawn(void *actor); // Randomly spawn bubbles
+void A_FanBubbleSpawn(void *actor);
+void A_BubbleRise(void *actor); // Bubbles float to surface
+void A_BubbleCheck(void *actor); // Don't draw if not underwater
+void A_AwardScore(void *actor);
+void A_ExtraLife(void *actor); // Extra Life
+void A_GiveShield(void *actor); // Obtained Shield
+void A_GravityBox(void *actor);
+void A_ScoreRise(void *actor); // Rise the score logo
+void A_AttractChase(void *actor); // Ring Chase
+void A_DropMine(void *actor); // Drop Mine from Skim or Jetty-Syn Bomber
+void A_FishJump(void *actor); // Fish Jump
+void A_ThrownRing(void *actor); // Sparkle trail for red ring
+void A_SetSolidSteam(void *actor);
+void A_UnsetSolidSteam(void *actor);
+void A_SignSpin(void *actor);
+void A_SignPlayer(void *actor);
+void A_OverlayThink(void *actor);
+void A_JetChase(void *actor);
+void A_JetbThink(void *actor); // Jetty-Syn Bomber Thinker
+void A_JetgThink(void *actor); // Jetty-Syn Gunner Thinker
+void A_JetgShoot(void *actor); // Jetty-Syn Shoot Function
+void A_ShootBullet(void *actor); // JetgShoot without reactiontime setting
+void A_MinusDigging(void *actor);
+void A_MinusPopup(void *actor);
+void A_MinusCheck(void *actor);
+void A_ChickenCheck(void *actor);
+void A_MouseThink(void *actor); // Mouse Thinker
+void A_DetonChase(void *actor); // Deton Chaser
+void A_CapeChase(void *actor); // Fake little Super Sonic cape
+void A_RotateSpikeBall(void *actor); // Spike ball rotation
+void A_SlingAppear(void *actor);
+void A_UnidusBall(void *actor);
+void A_RockSpawn(void *actor);
+void A_SetFuse(void *actor);
+void A_CrawlaCommanderThink(void *actor); // Crawla Commander
+void A_SmokeTrailer(void *actor);
+void A_RingExplode(void *actor);
+void A_OldRingExplode(void *actor);
+void A_MixUp(void *actor);
+void A_RecyclePowers(void *actor);
+void A_BossScream(void *actor);
+void A_Boss2TakeDamage(void *actor);
+void A_GoopSplat(void *actor);
+void A_Boss2PogoSFX(void *actor);
+void A_Boss2PogoTarget(void *actor);
+void A_EggmanBox(void *actor);
+void A_TurretFire(void *actor);
+void A_SuperTurretFire(void *actor);
+void A_TurretStop(void *actor);
+void A_JetJawRoam(void *actor);
+void A_JetJawChomp(void *actor);
+void A_PointyThink(void *actor);
+void A_CheckBuddy(void *actor);
+void A_HoodFire(void *actor);
+void A_HoodThink(void *actor);
+void A_HoodFall(void *actor);
+void A_ArrowBonks(void *actor);
+void A_SnailerThink(void *actor);
+void A_SharpChase(void *actor);
+void A_SharpSpin(void *actor);
+void A_SharpDecel(void *actor);
+void A_CrushstaceanWalk(void *actor);
+void A_CrushstaceanPunch(void *actor);
+void A_CrushclawAim(void *actor);
+void A_CrushclawLaunch(void *actor);
+void A_VultureVtol(void *actor);
+void A_VultureCheck(void *actor);
+void A_VultureHover(void *actor);
+void A_VultureBlast(void *actor);
+void A_VultureFly(void *actor);
+void A_SkimChase(void *actor);
+void A_SkullAttack(void *actor);
+void A_LobShot(void *actor);
+void A_FireShot(void *actor);
+void A_SuperFireShot(void *actor);
+void A_BossFireShot(void *actor);
+void A_Boss7FireMissiles(void *actor);
+void A_Boss1Laser(void *actor);
+void A_FocusTarget(void *actor);
+void A_Boss4Reverse(void *actor);
+void A_Boss4SpeedUp(void *actor);
+void A_Boss4Raise(void *actor);
+void A_SparkFollow(void *actor);
+void A_BuzzFly(void *actor);
+void A_GuardChase(void *actor);
+void A_EggShield(void *actor);
+void A_SetReactionTime(void *actor);
+void A_Boss1Spikeballs(void *actor);
+void A_Boss3TakeDamage(void *actor);
+void A_Boss3Path(void *actor);
+void A_Boss3ShockThink(void *actor);
+void A_Shockwave(void *actor);
+void A_LinedefExecute(void *actor);
+void A_LinedefExecuteFromArg(void *actor);
+void A_PlaySeeSound(void *actor);
+void A_PlayAttackSound(void *actor);
+void A_PlayActiveSound(void *actor);
+void A_1upThinker(void *actor);
+void A_BossZoom(void *actor); //Unused
+void A_Boss1Chase(void *actor);
+void A_Boss2Chase(void *actor);
+void A_Boss2Pogo(void *actor);
+void A_Boss7Chase(void *actor);
+void A_BossJetFume(void *actor);
+void A_SpawnObjectAbsolute(void *actor);
+void A_SpawnObjectRelative(void *actor);
+void A_ChangeAngleRelative(void *actor);
+void A_ChangeAngleAbsolute(void *actor);
+void A_RollAngle(void *actor);
+void A_ChangeRollAngleRelative(void *actor);
+void A_ChangeRollAngleAbsolute(void *actor);
+void A_PlaySound(void *actor);
+void A_FindTarget(void *actor);
+void A_FindTracer(void *actor);
+void A_SetTics(void *actor);
+void A_SetRandomTics(void *actor);
+void A_ChangeColorRelative(void *actor);
+void A_ChangeColorAbsolute(void *actor);
+void A_Dye(void *actor);
+void A_SetTranslation(void *actor);
+void A_MoveRelative(void *actor);
+void A_MoveAbsolute(void *actor);
+void A_Thrust(void *actor);
+void A_ZThrust(void *actor);
+void A_SetTargetsTarget(void *actor);
+void A_SetObjectFlags(void *actor);
+void A_SetObjectFlags2(void *actor);
+void A_RandomState(void *actor);
+void A_RandomStateRange(void *actor);
+void A_StateRangeByAngle(void *actor);
+void A_StateRangeByParameter(void *actor);
+void A_DualAction(void *actor);
+void A_RemoteAction(void *actor);
+void A_ToggleFlameJet(void *actor);
+void A_OrbitNights(void *actor);
+void A_GhostMe(void *actor);
+void A_SetObjectState(void *actor);
+void A_SetObjectTypeState(void *actor);
+void A_KnockBack(void *actor);
+void A_PushAway(void *actor);
+void A_RingDrain(void *actor);
+void A_SplitShot(void *actor);
+void A_MissileSplit(void *actor);
+void A_MultiShot(void *actor);
+void A_InstaLoop(void *actor);
+void A_Custom3DRotate(void *actor);
+void A_SearchForPlayers(void *actor);
+void A_CheckRandom(void *actor);
+void A_CheckTargetRings(void *actor);
+void A_CheckRings(void *actor);
+void A_CheckTotalRings(void *actor);
+void A_CheckHealth(void *actor);
+void A_CheckRange(void *actor);
+void A_CheckHeight(void *actor);
+void A_CheckTrueRange(void *actor);
+void A_CheckThingCount(void *actor);
+void A_CheckAmbush(void *actor);
+void A_CheckCustomValue(void *actor);
+void A_CheckCusValMemo(void *actor);
+void A_SetCustomValue(void *actor);
+void A_UseCusValMemo(void *actor);
+void A_RelayCustomValue(void *actor);
+void A_CusValAction(void *actor);
+void A_ForceStop(void *actor);
+void A_ForceWin(void *actor);
+void A_SpikeRetract(void *actor);
+void A_InfoState(void *actor);
+void A_Repeat(void *actor);
+void A_SetScale(void *actor);
+void A_RemoteDamage(void *actor);
+void A_HomingChase(void *actor);
+void A_TrapShot(void *actor);
+void A_VileTarget(void *actor);
+void A_VileAttack(void *actor);
+void A_VileFire(void *actor);
+void A_BrakChase(void *actor);
+void A_BrakFireShot(void *actor);
+void A_BrakLobShot(void *actor);
+void A_NapalmScatter(void *actor);
+void A_SpawnFreshCopy(void *actor);
+void A_FlickySpawn(void *actor);
+void A_FlickyCenter(void *actor);
+void A_FlickyAim(void *actor);
+void A_FlickyFly(void *actor);
+void A_FlickySoar(void *actor);
+void A_FlickyCoast(void *actor);
+void A_FlickyHop(void *actor);
+void A_FlickyFlounder(void *actor);
+void A_FlickyCheck(void *actor);
+void A_FlickyHeightCheck(void *actor);
+void A_FlickyFlutter(void *actor);
+void A_FlameParticle(void *actor);
+void A_FadeOverlay(void *actor);
+void A_Boss5Jump(void *actor);
+void A_LightBeamReset(void *actor);
+void A_MineExplode(void *actor);
+void A_MineRange(void *actor);
+void A_ConnectToGround(void *actor);
+void A_SpawnParticleRelative(void *actor);
+void A_MultiShotDist(void *actor);
+void A_WhoCaresIfYourSonIsABee(void *actor);
+void A_ParentTriesToSleep(void *actor);
+void A_CryingToMomma(void *actor);
+void A_CheckFlags2(void *actor);
+void A_Boss5FindWaypoint(void *actor);
+void A_DoNPCSkid(void *actor);
+void A_DoNPCPain(void *actor);
+void A_PrepareRepeat(void *actor);
+void A_Boss5ExtraRepeat(void *actor);
+void A_Boss5Calm(void *actor);
+void A_Boss5CheckOnGround(void *actor);
+void A_Boss5CheckFalling(void *actor);
+void A_Boss5PinchShot(void *actor);
+void A_Boss5MakeItRain(void *actor);
+void A_Boss5MakeJunk(void *actor);
+void A_LookForBetter(void *actor);
+void A_Boss5BombExplode(void *actor);
+void A_DustDevilThink(void *actor);
+void A_TNTExplode(void *actor);
+void A_DebrisRandom(void *actor);
+void A_TrainCameo(void *actor);
+void A_TrainCameo2(void *actor);
+void A_CanarivoreGas(void *actor);
+void A_KillSegments(void *actor);
+void A_SnapperSpawn(void *actor);
+void A_SnapperThinker(void *actor);
+void A_SaloonDoorSpawn(void *actor);
+void A_MinecartSparkThink(void *actor);
+void A_ModuloToState(void *actor);
+void A_LavafallRocks(void *actor);
+void A_LavafallLava(void *actor);
+void A_FallingLavaCheck(void *actor);
+void A_FireShrink(void *actor);
+void A_SpawnPterabytes(void *actor);
+void A_PterabyteHover(void *actor);
+void A_RolloutSpawn(void *actor);
+void A_RolloutRock(void *actor);
+void A_DragonbomberSpawn(void *actor);
+void A_DragonWing(void *actor);
+void A_DragonSegment(void *actor);
+void A_ChangeHeight(void *actor);
 
 extern int actionsoverridden[NUMACTIONS][MAX_ACTION_RECURSION];
 
@@ -4410,7 +4410,7 @@ typedef struct
 	spritenum_t sprite;
 	UINT32 frame; // we use the upper 16 bits for translucency and other shade effects
 	INT32 tics;
-	actionf_t action;
+	actionf_p1 action;
 	INT32 var1;
 	INT32 var2;
 	statenum_t nextstate;
diff --git a/src/lua_infolib.c b/src/lua_infolib.c
index a65ee23ebc..44a74b7878 100644
--- a/src/lua_infolib.c
+++ b/src/lua_infolib.c
@@ -714,21 +714,19 @@ static int lib_setState(lua_State *L)
 			switch(lua_type(L, 3))
 			{
 			case LUA_TNIL: // Null? Set the action to nothing, then.
-				state->action.acp1 = NULL;
+				state->action = NULL;
 				break;
 			case LUA_TSTRING: // It's a string, expect the name of a built-in action
 				LUA_SetActionByName(state, lua_tostring(L, 3));
 				break;
 			case LUA_TUSERDATA: // It's a userdata, expect META_ACTION of a built-in action
 			{
-				actionf_t *action = *((actionf_t **)luaL_checkudata(L, 3, META_ACTION));
+				actionf_p1 *action = *((actionf_p1 **)luaL_checkudata(L, 3, META_ACTION));
 
 				if (!action)
 					return luaL_error(L, "not a valid action?");
 
 				state->action = *action;
-				state->action.acv = action->acv;
-				state->action.acp1 = action->acp1;
 				break;
 			}
 			case LUA_TFUNCTION: // It's a function (a Lua function or a C function? either way!)
@@ -738,7 +736,7 @@ static int lib_setState(lua_State *L)
 				lua_pushvalue(L, 3); // Bring it to the top of the stack
 				lua_rawset(L, -3); // Set it in the registry
 				lua_pop(L, 1); // pop LREG_STATEACTION
-				state->action.acp1 = (actionf_p1)A_Lua; // Set the action for the userdata.
+				state->action = (actionf_p1)A_Lua; // Set the action for the userdata.
 				break;
 			default: // ?!
 				return luaL_typerror(L, 3, "function");
@@ -796,7 +794,7 @@ boolean LUA_SetLuaAction(void *stv, const char *action)
 	lua_pop(gL, 1); // pop LREG_STATEACTION
 
 	lua_pop(gL, 2); // pop the function and LREG_ACTIONS
-	st->action.acp1 = (actionf_p1)A_Lua; // Set the action for the userdata.
+	st->action = (actionf_p1)A_Lua; // Set the action for the userdata.
 	return true; // action successfully set.
 }
 
@@ -901,9 +899,9 @@ static int state_get(lua_State *L)
 		number = st->tics;
 	else if (fastcmp(field,"action")) {
 		const char *name;
-		if (!st->action.acp1) // Action is NULL.
+		if (!st->action) // Action is NULL.
 			return 0; // return nil.
-		if (st->action.acp1 == (actionf_p1)A_Lua) { // This is a Lua function?
+		if (st->action == (actionf_p1)A_Lua) { // This is a Lua function?
 			lua_getfield(L, LUA_REGISTRYINDEX, LREG_STATEACTION);
 			I_Assert(lua_istable(L, -1));
 			lua_pushlightuserdata(L, st); // Push the state pointer and
@@ -958,21 +956,19 @@ static int state_set(lua_State *L)
 		switch(lua_type(L, 3))
 		{
 		case LUA_TNIL: // Null? Set the action to nothing, then.
-			st->action.acp1 = NULL;
+			st->action = NULL;
 			break;
 		case LUA_TSTRING: // It's a string, expect the name of a built-in action
 			LUA_SetActionByName(st, lua_tostring(L, 3));
 			break;
 		case LUA_TUSERDATA: // It's a userdata, expect META_ACTION of a built-in action
 		{
-			actionf_t *action = *((actionf_t **)luaL_checkudata(L, 3, META_ACTION));
+			actionf_p1 *action = *((actionf_p1 **)luaL_checkudata(L, 3, META_ACTION));
 
 			if (!action)
 				return luaL_error(L, "not a valid action?");
 
 			st->action = *action;
-			st->action.acv = action->acv;
-			st->action.acp1 = action->acp1;
 			break;
 		}
 		case LUA_TFUNCTION: // It's a function (a Lua function or a C function? either way!)
@@ -982,7 +978,7 @@ static int state_set(lua_State *L)
 			lua_pushvalue(L, 3); // Bring it to the top of the stack
 			lua_rawset(L, -3); // Set it in the registry
 			lua_pop(L, 1); // pop LREG_STATEACTION
-			st->action.acp1 = (actionf_p1)A_Lua; // Set the action for the userdata.
+			st->action = (actionf_p1)A_Lua; // Set the action for the userdata.
 			break;
 		default: // ?!
 			return luaL_typerror(L, 3, "function");
diff --git a/src/lua_thinkerlib.c b/src/lua_thinkerlib.c
index f1be8c7893..1701b89ddc 100644
--- a/src/lua_thinkerlib.c
+++ b/src/lua_thinkerlib.c
@@ -44,7 +44,7 @@ static int iterationState_gc(lua_State *L)
 }
 
 #define push_thinker(th) {\
-	if ((th)->function.acp1 == (actionf_p1)P_MobjThinker) \
+	if ((th)->function == (actionf_p1)P_MobjThinker) \
 		LUA_PushUserdata(L, (th), META_MOBJ); \
 	else \
 		lua_pushlightuserdata(L, (th)); \
@@ -93,7 +93,7 @@ static int lib_iterateThinkers(lua_State *L)
 		return luaL_error(L, "next thinker invalidated during iteration");
 
 	for (; next != &thlist[THINK_MOBJ]; next = next->next)
-		if (!it->filter || next->function.acp1 == it->filter)
+		if (!it->filter || next->function == it->filter)
 		{
 			push_thinker(next);
 			if (next->next != &thlist[THINK_MOBJ])
diff --git a/src/m_menu.c b/src/m_menu.c
index 52e1197232..4822cff33d 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -8570,7 +8570,7 @@ static void M_DrawLoadGameData(void)
 			if (!useContinues)
 			{
 				INT32 workingscorenum = savegameinfo[savetodraw].continuescore;
-				char workingscorestr[11] = " 000000000\0";
+				char workingscorestr[11] = "000000000\0";
 				SINT8 j = 9;
 				// Change the above two lines if MAXSCORE ever changes from 8 digits long.
 				workingscorestr[0] = '\x86'; // done here instead of in initialiser 'cuz compiler complains
diff --git a/src/m_perfstats.c b/src/m_perfstats.c
index 33a774acfb..54490e469c 100644
--- a/src/m_perfstats.c
+++ b/src/m_perfstats.c
@@ -592,7 +592,7 @@ static void PS_CountThinkers(void)
 				ps_mainthcount.value.i++;
 			else if (i == THINK_MOBJ)
 			{
-				if (thinker->function.acp1 == (actionf_p1)P_MobjThinker)
+				if (thinker->function == (actionf_p1)P_MobjThinker)
 				{
 					mobj_t *mobj = (mobj_t*)thinker;
 					ps_mobjcount.value.i++;
diff --git a/src/netcode/d_netcmd.c b/src/netcode/d_netcmd.c
index 94170fa0df..6353832ef7 100644
--- a/src/netcode/d_netcmd.c
+++ b/src/netcode/d_netcmd.c
@@ -4811,7 +4811,7 @@ static void Command_Archivetest_f(void)
 	// assign mobjnum
 	i = 1;
 	for (th = thlist[THINK_MOBJ].next; th != &thlist[THINK_MOBJ]; th = th->next)
-		if (th->function.acp1 != (actionf_p1)P_RemoveThinkerDelayed)
+		if (th->function != (actionf_p1)P_RemoveThinkerDelayed)
 			((mobj_t *)th)->mobjnum = i++;
 
 	// allocate buffer
diff --git a/src/p_ceilng.c b/src/p_ceilng.c
index 61430d73f1..d49e196e99 100644
--- a/src/p_ceilng.c
+++ b/src/p_ceilng.c
@@ -224,7 +224,7 @@ INT32 EV_DoCeiling(mtag_t tag, line_t *line, ceiling_e type)
 		ceiling = Z_Calloc(sizeof (*ceiling), PU_LEVSPEC, NULL);
 		P_AddThinker(THINK_MAIN, &ceiling->thinker);
 		sec->ceilingdata = ceiling;
-		ceiling->thinker.function.acp1 = (actionf_p1)T_MoveCeiling;
+		ceiling->thinker.function = (actionf_p1)T_MoveCeiling;
 		ceiling->sector = sec;
 		ceiling->crush = false;
 		ceiling->sourceline = (INT32)(line-lines);
@@ -370,7 +370,7 @@ INT32 EV_DoCrush(mtag_t tag, line_t *line, ceiling_e type)
 		ceiling = Z_Calloc(sizeof (*ceiling), PU_LEVSPEC, NULL);
 		P_AddThinker(THINK_MAIN, &ceiling->thinker);
 		sec->ceilingdata = ceiling;
-		ceiling->thinker.function.acp1 = (actionf_p1)T_CrushCeiling;
+		ceiling->thinker.function = (actionf_p1)T_CrushCeiling;
 		ceiling->sector = sec;
 		ceiling->crush = true;
 		ceiling->sourceline = (INT32)(line-lines);
diff --git a/src/p_enemy.c b/src/p_enemy.c
index 41f8cce9d0..7a21b8cf3a 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -717,8 +717,9 @@ for (i = cvar.value; i; --i) spawnchance[numchoices++] = type
 //		upper 16 bits = distance limit
 // var2 = If 1, only change to seestate. If 2, only play seesound. If 0, do both.
 //
-void A_Look(mobj_t *actor)
+void A_Look(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -750,8 +751,9 @@ void A_Look(mobj_t *actor)
 //		3 = don't check meleestate and missilestate
 // var2 = unused
 //
-void A_Chase(mobj_t *actor)
+void A_Chase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 	INT32 locvar1 = var1;
 
@@ -842,8 +844,9 @@ void A_Chase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_FaceStabChase(mobj_t *actor)
+void A_FaceStabChase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 
 	if (LUA_CallAction(A_FACESTABCHASE, actor))
@@ -966,8 +969,9 @@ static void P_FaceStabFlume(mobj_t *actor)
 // var1 = effective duration
 // var2 = effective nextstate
 //
-void A_FaceStabRev(mobj_t *actor)
+void A_FaceStabRev(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -1010,8 +1014,9 @@ void A_FaceStabRev(mobj_t *actor)
 // var1 = homing strength (recommended strength between 0-8)
 // var2 = effective nextstate
 //
-void A_FaceStabHurl(mobj_t *actor)
+void A_FaceStabHurl(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -1121,8 +1126,9 @@ void A_FaceStabHurl(mobj_t *actor)
 // var1 = unused
 // var2 = effective nextstate
 //
-void A_FaceStabMiss(mobj_t *actor)
+void A_FaceStabMiss(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar2 = var2;
 
 	if (LUA_CallAction(A_FACESTABMISS, actor))
@@ -1155,8 +1161,9 @@ void A_FaceStabMiss(mobj_t *actor)
 // var1 = object to create
 // var2 = effective nextstate for created object
 //
-void A_StatueBurst(mobj_t *actor)
+void A_StatueBurst(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobjtype_t chunktype = (mobjtype_t)actor->info->raisestate;
@@ -1217,8 +1224,9 @@ void A_StatueBurst(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetJawRoam(mobj_t *actor)
+void A_JetJawRoam(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_JETJAWROAM, actor))
 		return;
 
@@ -1244,8 +1252,9 @@ void A_JetJawRoam(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetJawChomp(mobj_t *actor)
+void A_JetJawChomp(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 
 	if (LUA_CallAction(A_JETJAWCHOMP, actor))
@@ -1283,8 +1292,9 @@ void A_JetJawChomp(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_PointyThink(mobj_t *actor)
+void A_PointyThink(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i;
 	player_t *player = NULL;
 	mobj_t *ball;
@@ -1397,8 +1407,9 @@ void A_PointyThink(mobj_t *actor)
 //		1 = tracer
 // var2 = unused
 //
-void A_CheckBuddy(mobj_t *actor)
+void A_CheckBuddy(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_CHECKBUDDY, actor))
@@ -1439,8 +1450,9 @@ static void P_ParabolicMove(mobj_t *actor, fixed_t x, fixed_t y, fixed_t z, fixe
 // var1 = object type to fire
 // var2 = unused
 //
-void A_HoodFire(mobj_t *actor)
+void A_HoodFire(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *arrow;
 	INT32 locvar1 = var1;
 
@@ -1473,8 +1485,9 @@ void A_HoodFire(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_HoodThink(mobj_t *actor)
+void A_HoodThink(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dx, dy, dz, dm;
 	boolean checksight;
 
@@ -1543,8 +1556,9 @@ void A_HoodThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_HoodFall(mobj_t *actor)
+void A_HoodFall(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_HOODFALL, actor))
 		return;
 
@@ -1563,8 +1577,9 @@ void A_HoodFall(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ArrowBonks(mobj_t *actor)
+void A_ArrowBonks(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_ARROWBONKS, actor))
 		return;
 
@@ -1586,8 +1601,9 @@ void A_ArrowBonks(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SnailerThink(mobj_t *actor)
+void A_SnailerThink(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SNAILERTHINK, actor))
 		return;
 
@@ -1659,8 +1675,9 @@ void A_SnailerThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SharpChase(mobj_t *actor)
+void A_SharpChase(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SHARPCHASE, actor))
 		return;
 
@@ -1712,8 +1729,9 @@ void A_SharpChase(mobj_t *actor)
 // var1 = object # to spawn as dust (if not provided not done)
 // var2 = if nonzero, do the old-style spinning using this as the angle difference
 //
-void A_SharpSpin(mobj_t *actor)
+void A_SharpSpin(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	angle_t oldang = actor->angle;
@@ -1749,8 +1767,9 @@ void A_SharpSpin(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SharpDecel(mobj_t *actor)
+void A_SharpDecel(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SHARPDECEL, actor))
 		return;
 
@@ -1770,8 +1789,9 @@ void A_SharpDecel(mobj_t *actor)
 // var1 = speed (actor info's speed if 0)
 // var2 = state to switch to when blocked (spawnstate if 0)
 //
-void A_CrushstaceanWalk(mobj_t *actor)
+void A_CrushstaceanWalk(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = (var1 ? var1 : (INT32)actor->info->speed);
 	INT32 locvar2 = (var2 ? var2 : (INT32)actor->info->spawnstate);
 	angle_t ang = actor->angle + ((actor->flags2 & MF2_AMBUSH) ? ANGLE_90 : ANGLE_270);
@@ -1803,8 +1823,9 @@ void A_CrushstaceanWalk(mobj_t *actor)
 // var1 = unused
 // var2 = state to go to if unsuccessful (spawnstate if 0)
 //
-void A_CrushstaceanPunch(mobj_t *actor)
+void A_CrushstaceanPunch(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar2 = (var2 ? var2 : (INT32)actor->info->spawnstate);
 
 	if (LUA_CallAction(A_CRUSHSTACEANPUNCH, actor))
@@ -1832,8 +1853,9 @@ void A_CrushstaceanPunch(mobj_t *actor)
 // var1 = sideways offset
 // var2 = vertical offset
 //
-void A_CrushclawAim(mobj_t *actor)
+void A_CrushclawAim(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *crab = actor->tracer;
@@ -1894,8 +1916,9 @@ void A_CrushclawAim(mobj_t *actor)
 //		anything else - backwards
 // var2 = state to change to when done
 //
-void A_CrushclawLaunch(mobj_t *actor)
+void A_CrushclawLaunch(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *crab = actor->tracer;
@@ -2035,8 +2058,9 @@ void A_CrushclawLaunch(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_VultureVtol(mobj_t *actor)
+void A_VultureVtol(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_VULTUREVTOL, actor))
 		return;
 
@@ -2072,8 +2096,9 @@ void A_VultureVtol(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_VultureCheck(mobj_t *actor)
+void A_VultureCheck(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_VULTURECHECK, actor))
 		return;
 
@@ -2126,8 +2151,9 @@ static void P_VultureHoverParticle(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_VultureHover(mobj_t *actor)
+void A_VultureHover(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t targetz;
 	fixed_t distdif;
 	fixed_t memz = actor->z;
@@ -2191,8 +2217,9 @@ void A_VultureHover(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_VultureBlast(mobj_t *actor)
+void A_VultureBlast(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *dust;
 	UINT8 i;
 	angle_t faa;
@@ -2231,8 +2258,9 @@ void A_VultureBlast(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_VultureFly(mobj_t *actor)
+void A_VultureFly(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t speedmax = 18*FRACUNIT;
 	angle_t angledif;
 	fixed_t dx, dy, dz, dxy, dm;
@@ -2330,8 +2358,9 @@ void A_VultureFly(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SkimChase(mobj_t *actor)
+void A_SkimChase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 
 	if (LUA_CallAction(A_SKIMCHASE, actor))
@@ -2418,8 +2447,9 @@ void A_SkimChase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_FaceTarget(mobj_t *actor)
+void A_FaceTarget(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_FACETARGET, actor))
 		return;
 
@@ -2436,8 +2466,9 @@ void A_FaceTarget(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_FaceTracer(mobj_t *actor)
+void A_FaceTracer(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_FACETRACER, actor))
 		return;
 
@@ -2456,8 +2487,9 @@ void A_FaceTracer(mobj_t *actor)
 //		var2 >> 16 = height offset
 //		var2 & 65535 = airtime
 //
-void A_LobShot(mobj_t *actor)
+void A_LobShot(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2 >> 16;
 	mobj_t *shot;
@@ -2554,8 +2586,9 @@ void A_LobShot(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = height offset
 //
-void A_FireShot(mobj_t *actor)
+void A_FireShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t z;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -2593,8 +2626,9 @@ void A_FireShot(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = height offset
 //
-void A_SuperFireShot(mobj_t *actor)
+void A_SuperFireShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t z;
 	mobj_t *mo;
 	INT32 locvar1 = var1;
@@ -2642,8 +2676,9 @@ void A_SuperFireShot(mobj_t *actor)
 //		4 - Boss 3 Right side upper
 //		5 - Boss 3 Right side lower
 //
-void A_BossFireShot(mobj_t *actor)
+void A_BossFireShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t x, y, z;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -2729,8 +2764,9 @@ void A_BossFireShot(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = firing sound
 //
-void A_Boss7FireMissiles(mobj_t *actor)
+void A_Boss7FireMissiles(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t dummymo;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -2788,8 +2824,9 @@ void A_Boss7FireMissiles(mobj_t *actor)
 //		3 - Boss 1 Middle
 //		>=3 - Generic middle
 //
-void A_Boss1Laser(mobj_t *actor)
+void A_Boss1Laser(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t x, y, z, floorz, speed;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = (var2 & 65535);
@@ -2995,8 +3032,9 @@ void A_Boss1Laser(mobj_t *actor)
 //      & 1 - change horizontal angle
 //      & 2 - change vertical angle
 //
-void A_FocusTarget(mobj_t *actor)
+void A_FocusTarget(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -3046,8 +3084,9 @@ void A_FocusTarget(mobj_t *actor)
 // var1 = sfx to play
 // var2 = sfx to play in pinch
 //
-void A_Boss4Reverse(mobj_t *actor)
+void A_Boss4Reverse(void *data)
 {
+	mobj_t *actor = data;
 	sfxenum_t locvar1 = (sfxenum_t)var1;
 	sfxenum_t locvar2 = (sfxenum_t)var2;
 
@@ -3082,8 +3121,9 @@ void A_Boss4Reverse(mobj_t *actor)
 // var1 = sfx to play
 // var2 = unused
 //
-void A_Boss4SpeedUp(mobj_t *actor)
+void A_Boss4SpeedUp(void *data)
 {
+	mobj_t *actor = data;
 	sfxenum_t locvar1 = (sfxenum_t)var1;
 
 	if (LUA_CallAction(A_BOSS4SPEEDUP, actor))
@@ -3100,8 +3140,9 @@ void A_Boss4SpeedUp(mobj_t *actor)
 // var1 = sfx to play
 // var2 = unused
 //
-void A_Boss4Raise(mobj_t *actor)
+void A_Boss4Raise(void *data)
 {
+	mobj_t *actor = data;
 	sfxenum_t locvar1 = (sfxenum_t)var1;
 
 	if (LUA_CallAction(A_BOSS4RAISE, actor))
@@ -3126,8 +3167,9 @@ void A_Boss4Raise(mobj_t *actor)
 //
 #define SKULLSPEED (20*FRACUNIT)
 
-void A_SkullAttack(mobj_t *actor)
+void A_SkullAttack(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *dest;
 	angle_t an;
 	INT32 dist;
@@ -3244,8 +3286,9 @@ void A_SkullAttack(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_BossZoom(mobj_t *actor)
+void A_BossZoom(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *dest;
 	angle_t an;
 	INT32 dist;
@@ -3284,8 +3327,9 @@ void A_BossZoom(mobj_t *actor)
 //		& 2 - Use entire vertical range of object to spawn
 // var2 = Object to spawn. Default is MT_SONIC3KBOSSEXPLODE.
 //
-void A_BossScream(mobj_t *actor)
+void A_BossScream(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *mo;
 	fixed_t x, y, z;
 	angle_t fa;
@@ -3337,8 +3381,9 @@ void A_BossScream(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Scream(mobj_t *actor)
+void A_Scream(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SCREAM, actor))
 		return;
 
@@ -3353,8 +3398,9 @@ void A_Scream(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Pain(mobj_t *actor)
+void A_Pain(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_PAIN, actor))
 		return;
 
@@ -3372,8 +3418,9 @@ void A_Pain(mobj_t *actor)
 // var1 = value to set repeat to if nonzero
 // var2 = unused
 //
-void A_Fall(mobj_t *actor)
+void A_Fall(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_FALL, actor))
@@ -3401,8 +3448,9 @@ void A_Fall(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_1upThinker(mobj_t *actor)
+void A_1upThinker(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i;
 	fixed_t dist = INT32_MAX;
 	fixed_t temp;
@@ -3472,8 +3520,9 @@ void A_1upThinker(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MonitorPop(mobj_t *actor)
+void A_MonitorPop(void *data)
 {
+	mobj_t *actor = data;
 	mobjtype_t item = 0;
 	mobj_t *newmobj;
 
@@ -3563,8 +3612,9 @@ void A_MonitorPop(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GoldMonitorPop(mobj_t *actor)
+void A_GoldMonitorPop(void *data)
 {
+	mobj_t *actor = data;
 	mobjtype_t item = 0;
 	mobj_t *newmobj;
 
@@ -3654,8 +3704,9 @@ void A_GoldMonitorPop(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GoldMonitorRestore(mobj_t *actor)
+void A_GoldMonitorRestore(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_GOLDMONITORRESTORE, actor))
 		return;
 
@@ -3670,8 +3721,9 @@ void A_GoldMonitorRestore(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GoldMonitorSparkle(mobj_t *actor)
+void A_GoldMonitorSparkle(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t i, ngangle, xofs, yofs;
 
 	if (LUA_CallAction(A_GOLDMONITORSPARKLE, actor))
@@ -3698,8 +3750,9 @@ void A_GoldMonitorSparkle(mobj_t *actor)
 // var1 = damagetype
 // var2 = unused
 //
-void A_Explode(mobj_t *actor)
+void A_Explode(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_EXPLODE, actor))
@@ -3998,8 +4051,9 @@ static void P_DoBossDefaultDeath(mobj_t *mo)
 // var1 = unused
 // var2 = unused
 //
-void A_BossDeath(mobj_t *mo)
+void A_BossDeath(void *data)
 {
+	mobj_t *mo = data;
 	INT32 i;
 
 	if (LUA_CallAction(A_BOSSDEATH, mo))
@@ -4073,8 +4127,9 @@ void A_BossDeath(mobj_t *actor)
 // var1 = new fixed_t shadowscale (default = FRACUNIT)
 // var2 = unused
 //
-void A_SetShadowScale(mobj_t *actor)
+void A_SetShadowScale(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_SETSHADOWSCALE, actor))
@@ -4091,8 +4146,9 @@ void A_SetShadowScale(mobj_t *actor)
 // var1 = new fixed_t shadowscale (default = FRACUNIT)
 // var2 = unused
 //
-void A_ShadowScream(mobj_t *actor)
+void A_ShadowScream(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SHADOWSCREAM, actor))
 		return;
 
@@ -4108,8 +4164,9 @@ void A_ShadowScream(mobj_t *actor)
 // var1 = Power index #
 // var2 = Power duration in tics
 //
-void A_CustomPower(mobj_t *actor)
+void A_CustomPower(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -4144,8 +4201,9 @@ void A_CustomPower(mobj_t *actor)
 // var1 = Weapon index #
 // var2 = unused
 //
-void A_GiveWeapon(mobj_t *actor)
+void A_GiveWeapon(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 	INT32 locvar1 = var1;
 
@@ -4178,8 +4236,9 @@ void A_GiveWeapon(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_RingBox(mobj_t *actor)
+void A_RingBox(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_RINGBOX, actor))
@@ -4205,8 +4264,9 @@ void A_RingBox(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Invincibility(mobj_t *actor)
+void A_Invincibility(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_INVINCIBILITY, actor))
@@ -4238,8 +4298,9 @@ void A_Invincibility(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SuperSneakers(mobj_t *actor)
+void A_SuperSneakers(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_SUPERSNEAKERS, actor))
@@ -4273,8 +4334,9 @@ void A_SuperSneakers(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_AwardScore(mobj_t *actor)
+void A_AwardScore(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_AWARDSCORE, actor))
@@ -4300,8 +4362,9 @@ void A_AwardScore(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ExtraLife(mobj_t *actor)
+void A_ExtraLife(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_EXTRALIFE, actor))
@@ -4337,8 +4400,9 @@ void A_ExtraLife(mobj_t *actor)
 // var1 = Shield type (make with SH_ constants)
 // var2 = unused
 //
-void A_GiveShield(mobj_t *actor)
+void A_GiveShield(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 	UINT16 locvar1 = var1;
 
@@ -4364,8 +4428,9 @@ void A_GiveShield(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GravityBox(mobj_t *actor)
+void A_GravityBox(void *data)
 {
+	mobj_t *actor = data;
 	player_t *player;
 
 	if (LUA_CallAction(A_GRAVITYBOX, actor))
@@ -4391,8 +4456,9 @@ void A_GravityBox(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ScoreRise(mobj_t *actor)
+void A_ScoreRise(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SCORERISE, actor))
 		return;
 
@@ -4407,8 +4473,9 @@ void A_ScoreRise(mobj_t *actor)
 // var1 = jump strength
 // var2 = horizontal movement
 //
-void A_BunnyHop(mobj_t *actor)
+void A_BunnyHop(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -4430,8 +4497,9 @@ void A_BunnyHop(mobj_t *actor)
 // var1 = Distance to look for players.  If no player is in this distance, bubbles aren't spawned. (Ambush overrides)
 // var2 = unused
 //
-void A_BubbleSpawn(mobj_t *actor)
+void A_BubbleSpawn(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i, locvar1 = var1;
 	UINT8 prandom;
 	mobj_t *bubble = NULL;
@@ -4479,8 +4547,9 @@ void A_BubbleSpawn(mobj_t *actor)
 // var1 = Distance to look for players.  If no player is in this distance, bubbles aren't spawned. (Ambush overrides)
 // var2 = unused
 //
-void A_FanBubbleSpawn(mobj_t *actor)
+void A_FanBubbleSpawn(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i, locvar1 = var1;
 	UINT8 prandom;
 	mobj_t *bubble = NULL;
@@ -4524,8 +4593,9 @@ void A_FanBubbleSpawn(mobj_t *actor)
 //		1 = Rise straight up
 // var2 = rising speed
 //
-void A_BubbleRise(mobj_t *actor)
+void A_BubbleRise(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -4563,8 +4633,9 @@ void A_BubbleRise(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_BubbleCheck(mobj_t *actor)
+void A_BubbleCheck(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BUBBLECHECK, actor))
 		return;
 
@@ -4581,8 +4652,9 @@ void A_BubbleCheck(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_AttractChase(mobj_t *actor)
+void A_AttractChase(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_ATTRACTCHASE, actor))
 		return;
 
@@ -4651,8 +4723,9 @@ void A_AttractChase(mobj_t *actor)
 //		lower 16 bits = proximity check distance (0 disables)
 //		upper 16 bits = 0 to check proximity with target, 1 for tracer
 //
-void A_DropMine(mobj_t *actor)
+void A_DropMine(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t z;
@@ -4704,8 +4777,9 @@ void A_DropMine(mobj_t *actor)
 // var1 = Jump strength (in FRACBITS), if specified. Otherwise, uses the angle value.
 // var2 = Trail object to spawn, if desired.
 //
-void A_FishJump(mobj_t *actor)
+void A_FishJump(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -4759,8 +4833,9 @@ void A_FishJump(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ThrownRing(mobj_t *actor)
+void A_ThrownRing(void *data)
 {
+	mobj_t *actor = data;
 	INT32 c = 0;
 	INT32 stop;
 	player_t *player;
@@ -4919,8 +4994,9 @@ void A_ThrownRing(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SetSolidSteam(mobj_t *actor)
+void A_SetSolidSteam(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SETSOLIDSTEAM, actor))
 		return;
 
@@ -4950,8 +5026,9 @@ void A_SetSolidSteam(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_UnsetSolidSteam(mobj_t *actor)
+void A_UnsetSolidSteam(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_UNSETSOLIDSTEAM, actor))
 		return;
 
@@ -4966,8 +5043,9 @@ void A_UnsetSolidSteam(mobj_t *actor)
 // var1 = degrees to rotate object (must be positive, because I'm lazy)
 // var2 = unused
 //
-void A_SignSpin(mobj_t *actor)
+void A_SignSpin(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT16 i;
 	angle_t rotateangle = FixedAngle(locvar1 << FRACBITS);
@@ -5061,8 +5139,9 @@ static boolean SignSkinCheck(player_t *player, INT32 num)
 // var1 = number of skin to display (e.g. 2 = Knuckles; special cases: -1 = target's skin, -2 = skin roulette, -3 = Eggman)
 // var2 = custom sign color, if desired.
 //
-void A_SignPlayer(mobj_t *actor)
+void A_SignPlayer(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	skin_t *skin = NULL;
@@ -5190,8 +5269,9 @@ void A_SignPlayer(mobj_t *actor)
 // var1 = unused
 // var2 = invert, z offset
 //
-void A_OverlayThink(mobj_t *actor)
+void A_OverlayThink(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t destx, desty;
 
 	if (LUA_CallAction(A_OVERLAYTHINK, actor))
@@ -5242,8 +5322,9 @@ void A_OverlayThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetChase(mobj_t *actor)
+void A_JetChase(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t thefloor;
 
 	if (LUA_CallAction(A_JETCHASE, actor))
@@ -5337,8 +5418,9 @@ void A_JetChase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetbThink(mobj_t *actor)
+void A_JetbThink(void *data)
 {
+	mobj_t *actor = data;
 	sector_t *nextsector;
 	fixed_t thefloor;
 
@@ -5404,8 +5486,9 @@ void A_JetbThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetgShoot(mobj_t *actor)
+void A_JetgShoot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dist;
 
 	if (LUA_CallAction(A_JETGSHOOT, actor))
@@ -5447,8 +5530,9 @@ void A_JetgShoot(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ShootBullet(mobj_t *actor)
+void A_ShootBullet(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dist;
 
 	if (LUA_CallAction(A_SHOOTBULLET, actor))
@@ -5503,8 +5587,9 @@ static boolean PIT_MinusCarry(mobj_t *thing)
 // var1 = If 1, play digging sound.
 // var2 = unused
 //
-void A_MinusDigging(mobj_t *actor)
+void A_MinusDigging(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 rad = 32;
 	angle_t fa = (actor->angle >> ANGLETOFINESHIFT) & FINEMASK;
@@ -5600,8 +5685,9 @@ void A_MinusDigging(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MinusPopup(mobj_t *actor)
+void A_MinusPopup(void *data)
 {
+	mobj_t *actor = data;
 	INT32 num = 6;
 	angle_t ani = FixedAngle(FRACUNIT*360/num);
 	INT32 i;
@@ -5639,8 +5725,9 @@ void A_MinusPopup(mobj_t *actor)
 // var1 = State to switch to (if 0, use seestate).
 // var2 = If not 0, spawn debris when hitting the floor.
 //
-void A_MinusCheck(mobj_t *actor)
+void A_MinusCheck(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -5676,8 +5763,9 @@ void A_MinusCheck(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ChickenCheck(mobj_t *actor)
+void A_ChickenCheck(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_CHICKENCHECK, actor))
 		return;
 
@@ -5703,8 +5791,9 @@ void A_ChickenCheck(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_JetgThink(mobj_t *actor)
+void A_JetgThink(void *data)
 {
+	mobj_t *actor = data;
 	sector_t *nextsector;
 
 	fixed_t thefloor;
@@ -5757,8 +5846,9 @@ void A_JetgThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MouseThink(mobj_t *actor)
+void A_MouseThink(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_MOUSETHINK, actor))
 		return;
 
@@ -5791,8 +5881,9 @@ void A_MouseThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_DetonChase(mobj_t *actor)
+void A_DetonChase(void *data)
 {
+	mobj_t *actor = data;
 	angle_t exact;
 	fixed_t xydist, dist;
 
@@ -5940,8 +6031,9 @@ void A_DetonChase(mobj_t *actor)
 //		upper 16 bits = forward/backward offset
 //		lower 16 bits = sideways offset
 //
-void A_CapeChase(mobj_t *actor)
+void A_CapeChase(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *chaser;
 	fixed_t foffsetx, foffsety, boffsetx, boffsety;
 	INT32 locvar1 = var1;
@@ -6003,8 +6095,9 @@ void A_CapeChase(mobj_t *actor)
 //		1 = Use tracer
 // var2 = unused
 //
-void A_RotateSpikeBall(mobj_t *actor)
+void A_RotateSpikeBall(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	const fixed_t radius = FixedMul(12*actor->info->speed, actor->scale);
 
@@ -6054,8 +6147,9 @@ void A_RotateSpikeBall(mobj_t *actor)
 //		2 = Throw when target leaves MF2_SKULLFLY.
 // var2 = unused
 //
-void A_UnidusBall(mobj_t *actor)
+void A_UnidusBall(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	boolean canthrow = false;
 
@@ -6147,8 +6241,9 @@ void A_UnidusBall(mobj_t *actor)
 //
 // var1 = unused
 // var2 = unused
-void A_RockSpawn(mobj_t *actor)
+void A_RockSpawn(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *mo;
 	mobjtype_t type;
 	fixed_t dist;
@@ -6192,8 +6287,9 @@ void A_RockSpawn(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SlingAppear(mobj_t *actor)
+void A_SlingAppear(void *data)
 {
+	mobj_t *actor = data;
 	UINT8 mlength = 4;
 	mobj_t *spawnee, *hprev;
 
@@ -6247,8 +6343,9 @@ void A_SlingAppear(mobj_t *actor)
 //		lower 16 bits = if > 0, state to change to when fuse = 1
 //		upper 16 bits: 0 = (default) don't set fuse unless 0, 1 = force change, 2 = force no change
 //
-void A_SetFuse(mobj_t *actor)
+void A_SetFuse(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -6272,8 +6369,9 @@ void A_SetFuse(mobj_t *actor)
 // var1 = shoot bullets?
 // var2 = "pogo mode" speed
 //
-void A_CrawlaCommanderThink(mobj_t *actor)
+void A_CrawlaCommanderThink(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dist;
 	sector_t *nextsector;
 	fixed_t thefloor;
@@ -6433,8 +6531,9 @@ void A_CrawlaCommanderThink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_RingExplode(mobj_t *actor)
+void A_RingExplode(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *mo2;
 	thinker_t *th;
 	angle_t d;
@@ -6477,7 +6576,8 @@ void A_RingExplode(mobj_t *actor)
 // var1 = object # to explode as debris
 // var2 = unused
 //
-void A_OldRingExplode(mobj_t *actor) {
+void A_OldRingExplode(void *data) {
+	mobj_t *actor = data;
 	UINT8 i;
 	mobj_t *mo;
 	const fixed_t ns = FixedMul(20 * FRACUNIT, actor->scale);
@@ -6562,8 +6662,9 @@ void A_OldRingExplode(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MixUp(mobj_t *actor)
+void A_MixUp(void *data)
 {
+	mobj_t *actor = data;
 	boolean teleported[MAXPLAYERS];
 	INT32 i, numplayers = 0, prandom = 0;
 
@@ -6828,8 +6929,9 @@ void A_MixUp(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_RecyclePowers(mobj_t *actor)
+void A_RecyclePowers(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i, j, k, numplayers = 0;
 
 #ifdef WEIGHTEDRECYCLER
@@ -6970,8 +7072,9 @@ void A_RecyclePowers(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss1Chase(mobj_t *actor)
+void A_Boss1Chase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 
 	if (LUA_CallAction(A_BOSS1CHASE, actor))
@@ -7089,8 +7192,9 @@ void A_Boss1Chase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss2Chase(mobj_t *actor)
+void A_Boss2Chase(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t radius;
 	boolean reverse = false;
 	INT32 speedvar;
@@ -7222,8 +7326,9 @@ void A_Boss2Chase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss2Pogo(mobj_t *actor)
+void A_Boss2Pogo(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BOSS2POGO, actor))
 		return;
 
@@ -7270,8 +7375,9 @@ void A_Boss2Pogo(mobj_t *actor)
 // var1 = Invincibility duration
 // var2 = unused
 //
-void A_Boss2TakeDamage(mobj_t *actor)
+void A_Boss2TakeDamage(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_BOSS2TAKEDAMAGE, actor))
@@ -7292,8 +7398,9 @@ void A_Boss2TakeDamage(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss7Chase(mobj_t *actor)
+void A_Boss7Chase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 	INT32 i;
 
@@ -7433,8 +7540,9 @@ void A_Boss7Chase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GoopSplat(mobj_t *actor)
+void A_GoopSplat(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_GOOPSPLAT, actor))
 		return;
 
@@ -7455,8 +7563,9 @@ void A_GoopSplat(mobj_t *actor)
 // var1 = pogo jump strength
 // var2 = idle pogo speed
 //
-void A_Boss2PogoSFX(mobj_t *actor)
+void A_Boss2PogoSFX(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -7497,8 +7606,9 @@ void A_Boss2PogoSFX(mobj_t *actor)
 // var1 = pogo jump strength
 // var2 = idle pogo speed
 //
-void A_Boss2PogoTarget(mobj_t *actor)
+void A_Boss2PogoTarget(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -7592,8 +7702,9 @@ void A_Boss2PogoTarget(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_EggmanBox(mobj_t *actor)
+void A_EggmanBox(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_EGGMANBOX, actor))
 		return;
 
@@ -7613,8 +7724,9 @@ void A_EggmanBox(mobj_t *actor)
 // var1 = object # to repeatedly fire
 // var2 = distance threshold
 //
-void A_TurretFire(mobj_t *actor)
+void A_TurretFire(void *data)
 {
+	mobj_t *actor = data;
 	INT32 count = 0;
 	fixed_t dist;
 	INT32 locvar1 = var1;
@@ -7651,8 +7763,9 @@ void A_TurretFire(mobj_t *actor)
 // var1 = object # to repeatedly fire
 // var2 = distance threshold
 //
-void A_SuperTurretFire(mobj_t *actor)
+void A_SuperTurretFire(void *data)
 {
+	mobj_t *actor = data;
 	INT32 count = 0;
 	fixed_t dist;
 	INT32 locvar1 = var1;
@@ -7690,8 +7803,9 @@ void A_SuperTurretFire(mobj_t *actor)
 // var1 = Don't play activesound?
 // var2 = unused
 //
-void A_TurretStop(mobj_t *actor)
+void A_TurretStop(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_TURRETSTOP, actor))
@@ -7711,8 +7825,9 @@ void A_TurretStop(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SparkFollow(mobj_t *actor)
+void A_SparkFollow(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SPARKFOLLOW, actor))
 		return;
 
@@ -7744,8 +7859,9 @@ void A_SparkFollow(mobj_t *actor)
 // var1 = sfx to play
 // var2 = length of sfx, set to threshold if played
 //
-void A_BuzzFly(mobj_t *actor)
+void A_BuzzFly(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -7844,8 +7960,9 @@ void A_BuzzFly(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_GuardChase(mobj_t *actor)
+void A_GuardChase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 
 	if (LUA_CallAction(A_GUARDCHASE, actor))
@@ -7947,10 +8064,10 @@ void A_GuardChase(mobj_t *actor)
 	// Now that we've moved, its time for our shield to move!
 	// Otherwise it'll never act as a proper overlay.
 	if (actor->tracer && actor->tracer->state
-	&& actor->tracer->state->action.acp1)
+	&& actor->tracer->state->action)
 	{
 		var1 = actor->tracer->state->var1, var2 = actor->tracer->state->var2;
-		actor->tracer->state->action.acp1(actor->tracer);
+		actor->tracer->state->action(actor->tracer);
 	}
 }
 
@@ -7961,8 +8078,9 @@ void A_GuardChase(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_EggShield(mobj_t *actor)
+void A_EggShield(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i;
 	player_t *player;
 	fixed_t blockdist;
@@ -8051,8 +8169,9 @@ void A_EggShield(mobj_t *actor)
 // var1 = 1 (use value in var2); 0 (use info table value)
 // var2 = if var1 = 1, then value to set
 //
-void A_SetReactionTime(mobj_t *actor)
+void A_SetReactionTime(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_SETREACTIONTIME, actor))
 		return;
 
@@ -8069,8 +8188,9 @@ void A_SetReactionTime(mobj_t *actor)
 // var1 = ball number
 // var2 = total balls
 //
-void A_Boss1Spikeballs(mobj_t *actor)
+void A_Boss1Spikeballs(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *ball;
@@ -8087,7 +8207,7 @@ void A_Boss1Spikeballs(mobj_t *actor)
 
 	S_StartSound(ball, ball->info->seesound);
 	var1 = ball->state->var1, var2 = ball->state->var2;
-	ball->state->action.acp1(ball);
+	ball->state->action(ball);
 }
 
 // Function: A_Boss3TakeDamage
@@ -8097,8 +8217,9 @@ void A_Boss1Spikeballs(mobj_t *actor)
 // var1 = movecount value
 // var2 = unused
 //
-void A_Boss3TakeDamage(mobj_t *actor)
+void A_Boss3TakeDamage(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BOSS3TAKEDAMAGE, actor))
 		return;
 
@@ -8113,8 +8234,9 @@ void A_Boss3TakeDamage(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss3Path(mobj_t *actor)
+void A_Boss3Path(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BOSS3PATH, actor))
 		return;
 
@@ -8237,8 +8359,9 @@ void A_Boss3Path(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss3ShockThink(mobj_t *actor)
+void A_Boss3ShockThink(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BOSS3SHOCKTHINK, actor))
 		return;
 
@@ -8295,8 +8418,9 @@ void A_Boss3ShockThink(mobj_t *actor)
 // var1 = object spawned
 // var2 = amount of objects spawned
 //
-void A_Shockwave(mobj_t *actor)
+void A_Shockwave(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	INT32 i;
@@ -8345,8 +8469,9 @@ void A_Shockwave(mobj_t *actor)
 // var1 = tag
 // var2 = add angle to tag (optional)
 //
-void A_LinedefExecute(mobj_t *actor)
+void A_LinedefExecute(void *data)
 {
+	mobj_t *actor = data;
 	INT32 tagnum;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -8373,8 +8498,9 @@ void A_LinedefExecute(mobj_t *actor)
 // var1 = mapthing arg to take tag from
 // var2 = unused
 //
-void A_LinedefExecuteFromArg(mobj_t *actor)
+void A_LinedefExecuteFromArg(void *data)
 {
+	mobj_t *actor = data;
 	INT32 tagnum;
 	INT32 locvar1 = var1;
 
@@ -8405,8 +8531,9 @@ void A_LinedefExecuteFromArg(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_PlaySeeSound(mobj_t *actor)
+void A_PlaySeeSound(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_PLAYSEESOUND, actor))
 		return;
 
@@ -8424,8 +8551,9 @@ void A_PlaySeeSound(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_PlayAttackSound(mobj_t *actor)
+void A_PlayAttackSound(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_PLAYATTACKSOUND, actor))
 		return;
 
@@ -8440,8 +8568,9 @@ void A_PlayAttackSound(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_PlayActiveSound(mobj_t *actor)
+void A_PlayActiveSound(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_PLAYACTIVESOUND, actor))
 		return;
 
@@ -8456,8 +8585,9 @@ void A_PlayActiveSound(mobj_t *actor)
 // var1 = object # to spawn as smoke
 // var2 = unused
 //
-void A_SmokeTrailer(mobj_t *actor)
+void A_SmokeTrailer(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *th;
 	INT32 locvar1 = var1;
 
@@ -8496,8 +8626,9 @@ void A_SmokeTrailer(mobj_t *actor)
 //		var2 >> 16 = z
 //		var2 & 65535 = type
 //
-void A_SpawnObjectAbsolute(mobj_t *actor)
+void A_SpawnObjectAbsolute(void *data)
 {
+	mobj_t *actor = data;
 	INT16 x, y, z; // Want to be sure we can use negative values
 	mobjtype_t type;
 	mobj_t *mo;
@@ -8534,8 +8665,9 @@ void A_SpawnObjectAbsolute(mobj_t *actor)
 //		var2 >> 16 = z
 //		var2 & 65535 = type
 //
-void A_SpawnObjectRelative(mobj_t *actor)
+void A_SpawnObjectRelative(void *data)
 {
+	mobj_t *actor = data;
 	INT16 x, y, z; // Want to be sure we can use negative values
 	mobjtype_t type;
 	mobj_t *mo;
@@ -8575,8 +8707,9 @@ void A_SpawnObjectRelative(mobj_t *actor)
 // var1 = min
 // var2 = max
 //
-void A_ChangeAngleRelative(mobj_t *actor)
+void A_ChangeAngleRelative(void *data)
 {
+	mobj_t *actor = data;
 	// Oh god, the old code /sucked/. Changed this and the absolute version to get a random range using amin and amax instead of
 	//  getting a random angle from the _entire_ spectrum and then clipping. While we're at it, do the angle conversion to the result
 	//  rather than the ranges, so <0 and >360 work as possible values. -Red
@@ -8611,8 +8744,9 @@ void A_ChangeAngleRelative(mobj_t *actor)
 // var1 = min
 // var2 = max
 //
-void A_ChangeAngleAbsolute(mobj_t *actor)
+void A_ChangeAngleAbsolute(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	//angle_t angle = (P_RandomByte()+1)<<24;
@@ -8644,8 +8778,9 @@ void A_ChangeAngleAbsolute(mobj_t *actor)
 // var1 = angle
 // var2 = relative? (default)
 //
-void A_RollAngle(mobj_t *actor)
+void A_RollAngle(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	const angle_t angle = FixedAngle(locvar1*FRACUNIT);
@@ -8668,8 +8803,9 @@ void A_RollAngle(mobj_t *actor)
 // var1 = min
 // var2 = max
 //
-void A_ChangeRollAngleRelative(mobj_t *actor)
+void A_ChangeRollAngleRelative(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	const fixed_t amin = locvar1*FRACUNIT;
@@ -8693,8 +8829,9 @@ void A_ChangeRollAngleRelative(mobj_t *actor)
 // var1 = min
 // var2 = max
 //
-void A_ChangeRollAngleAbsolute(mobj_t *actor)
+void A_ChangeRollAngleAbsolute(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	const fixed_t amin = locvar1*FRACUNIT;
@@ -8720,8 +8857,9 @@ void A_ChangeRollAngleAbsolute(mobj_t *actor)
 //		lower 16 bits = If 1, play sound using calling object as origin. If 0, play sound without an origin
 //		upper 16 bits = If 1, do not play sound during preticker.
 //
-void A_PlaySound(mobj_t *actor)
+void A_PlaySound(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8741,8 +8879,9 @@ void A_PlaySound(mobj_t *actor)
 // var1 = mobj type
 // var2 = if (0) nearest; else furthest;
 //
-void A_FindTarget(mobj_t *actor)
+void A_FindTarget(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *targetedmobj = NULL;
@@ -8805,8 +8944,9 @@ void A_FindTarget(mobj_t *actor)
 // var1 = mobj type
 // var2 = if (0) nearest; else furthest;
 //
-void A_FindTracer(mobj_t *actor)
+void A_FindTracer(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *targetedmobj = NULL;
@@ -8869,8 +9009,9 @@ void A_FindTracer(mobj_t *actor)
 // var1 = tics to set to
 // var2 = if this is set, and no var1 is supplied, the mobj's threshold value will be used.
 //
-void A_SetTics(mobj_t *actor)
+void A_SetTics(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8890,8 +9031,9 @@ void A_SetTics(mobj_t *actor)
 // var1 = lower bound
 // var2 = upper bound
 //
-void A_SetRandomTics(mobj_t *actor)
+void A_SetRandomTics(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8908,8 +9050,9 @@ void A_SetRandomTics(mobj_t *actor)
 // var1 = if (var1 > 0), find target and add its color value to yours
 // var2 = if (var1 = 0), color value to add
 //
-void A_ChangeColorRelative(mobj_t *actor)
+void A_ChangeColorRelative(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8933,8 +9076,9 @@ void A_ChangeColorRelative(mobj_t *actor)
 // var1 = if (var1 > 0), set your color to your target's color
 // var2 = if (var1 = 0), color value to set to
 //
-void A_ChangeColorAbsolute(mobj_t *actor)
+void A_ChangeColorAbsolute(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8957,8 +9101,9 @@ void A_ChangeColorAbsolute(mobj_t *actor)
 // var1 = if (var1 != 0), dye your target instead of yourself
 // var2 = color value to dye
 //
-void A_Dye(mobj_t *actor)
+void A_Dye(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -8992,8 +9137,9 @@ void A_Dye(mobj_t *actor)
 // var1 = translation ID
 // var2 = unused
 //
-void A_SetTranslation(mobj_t *actor)
+void A_SetTranslation(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_SETTRANSLATION, actor))
@@ -9012,8 +9158,9 @@ void A_SetTranslation(mobj_t *actor)
 // var1 = angle
 // var2 = force
 //
-void A_MoveRelative(mobj_t *actor)
+void A_MoveRelative(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9030,8 +9177,9 @@ void A_MoveRelative(mobj_t *actor)
 // var1 = angle
 // var2 = force
 //
-void A_MoveAbsolute(mobj_t *actor)
+void A_MoveAbsolute(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9048,8 +9196,9 @@ void A_MoveAbsolute(mobj_t *actor)
 // var1 = amount of force
 // var2 = If 1, xy momentum is lost. If 0, xy momentum is kept
 //
-void A_Thrust(mobj_t *actor)
+void A_Thrust(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9074,8 +9223,9 @@ void A_Thrust(mobj_t *actor)
 //		lower 16 bits = If 1, xy momentum is lost. If 0, xy momentum is kept
 //		upper 16 bits = If 1, z momentum is lost. If 0, z momentum is kept
 //
-void A_ZThrust(mobj_t *actor)
+void A_ZThrust(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9107,8 +9257,9 @@ void A_ZThrust(mobj_t *actor)
 //		0 = target/tracer's target
 //		1 = target/tracer's tracer
 //
-void A_SetTargetsTarget(mobj_t *actor)
+void A_SetTargetsTarget(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *oldtarg = NULL, *newtarg = NULL;
@@ -9151,8 +9302,9 @@ void A_SetTargetsTarget(mobj_t *actor)
 //		else if var2 == 1, remove the flag from the current flags
 //		else if var2 == 0, set the flags to the exact value
 //
-void A_SetObjectFlags(mobj_t *actor)
+void A_SetObjectFlags(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	boolean unlinkthings = false;
@@ -9194,8 +9346,9 @@ void A_SetObjectFlags(mobj_t *actor)
 //		else if var2 == 1, remove the flag from the current flags
 //		else if var2 == 0, set the flags to the exact value
 //
-void A_SetObjectFlags2(mobj_t *actor)
+void A_SetObjectFlags2(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9221,8 +9374,9 @@ void A_SetObjectFlags2(mobj_t *actor)
 //		3 - Boss 4 jet flame
 // var2 = unused
 //
-void A_BossJetFume(mobj_t *actor)
+void A_BossJetFume(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *filler;
 	INT32 locvar1 = var1;
 
@@ -9369,8 +9523,9 @@ void A_BossJetFume(mobj_t *actor)
 // var1 = state number 1
 // var2 = state number 2
 //
-void A_RandomState(mobj_t *actor)
+void A_RandomState(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9387,8 +9542,9 @@ void A_RandomState(mobj_t *actor)
 // var1 = Minimum state number to choose.
 // var2 = Maximum state number to use.
 //
-void A_RandomStateRange(mobj_t *actor)
+void A_RandomStateRange(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9405,8 +9561,9 @@ void A_RandomStateRange(mobj_t *actor)
 // var1 = Minimum state number to use.
 // var2 = Maximum state number to use. The difference will act as a modulo operator.
 //
-void A_StateRangeByAngle(mobj_t *actor)
+void A_StateRangeByAngle(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9426,8 +9583,9 @@ void A_StateRangeByAngle(mobj_t *actor)
 // var1 = Minimum state number to use.
 // var2 = Maximum state number to use. The difference will act as a modulo operator.
 //
-void A_StateRangeByParameter(mobj_t *actor)
+void A_StateRangeByParameter(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	UINT8 parameter = (actor->spawnpoint ? actor->spawnpoint->extrainfo : 0);
@@ -9448,8 +9606,9 @@ void A_StateRangeByParameter(mobj_t *actor)
 // var1 = state # to use 1st action from
 // var2 = state # to use 2nd action from
 //
-void A_DualAction(mobj_t *actor)
+void A_DualAction(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9463,14 +9622,14 @@ void A_DualAction(mobj_t *actor)
 	astate = &states[locvar1];
 
 	CONS_Debug(DBG_GAMELOGIC, "A_DualAction: Calling First Action (state %d)...\n", locvar1);
-	states[locvar1].action.acp1(actor);
+	states[locvar1].action(actor);
 
 	var1 = states[locvar2].var1;
 	var2 = states[locvar2].var2;
 	astate = &states[locvar2];
 
 	CONS_Debug(DBG_GAMELOGIC, "A_DualAction: Calling Second Action (state %d)...\n", locvar2);
-	states[locvar2].action.acp1(actor);
+	states[locvar2].action(actor);
 }
 
 // Function: A_RemoteAction
@@ -9480,8 +9639,9 @@ void A_DualAction(mobj_t *actor)
 // var1 = remote object (-2 uses tracer, -1 uses target)
 // var2 = state reference for calling an action
 //
-void A_RemoteAction(mobj_t *actor)
+void A_RemoteAction(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *originaltarget = actor->target; // Hold on to the target for later.
@@ -9553,7 +9713,7 @@ void A_RemoteAction(mobj_t *actor)
 
 		CONS_Debug(DBG_GAMELOGIC, "A_RemoteAction: Calling action on %p\n"
 				"var1 is %d\nvar2 is %d\n", actor->target, var1, var2);
-		states[locvar2].action.acp1(actor->target);
+		states[locvar2].action(actor->target);
 	}
 
 	P_SetTarget(&actor->target, originaltarget); // Restore the original target.
@@ -9566,8 +9726,9 @@ void A_RemoteAction(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ToggleFlameJet(mobj_t* actor)
+void A_ToggleFlameJet(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_TOGGLEFLAMEJET, actor))
 		return;
 
@@ -9609,8 +9770,9 @@ void A_ToggleFlameJet(mobj_t *actor)
 //        Bits 1-10: X factor
 //        Bits 11-20: Y factor
 //        Bits 21-30: Z factor
-void A_OrbitNights(mobj_t* actor)
+void A_OrbitNights(void *data)
 {
+	mobj_t *actor = data;
 	INT32 ofs = (var2 & 0x3FF);
 	boolean ishelper = (var2 & 0x10000);
 	boolean donotrescale = (var2 & 0x40000);
@@ -9687,8 +9849,9 @@ void A_OrbitNights(mobj_t* actor)
 // var1 = duration in tics
 // var2 = unused
 //
-void A_GhostMe(mobj_t *actor)
+void A_GhostMe(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	mobj_t *ghost;
 
@@ -9709,8 +9872,9 @@ void A_GhostMe(mobj_t *actor)
 //		0 = target
 //		1 = tracer
 //
-void A_SetObjectState(mobj_t *actor)
+void A_SetObjectState(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *target;
@@ -9748,8 +9912,9 @@ void A_SetObjectState(mobj_t *actor)
 //		lower 16 bits = type
 //		upper 16 bits = range (if == 0, across whole map)
 //
-void A_SetObjectTypeState(mobj_t *actor)
+void A_SetObjectTypeState(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	const UINT16 loc2lw = (UINT16)(locvar2 & 65535);
@@ -9796,8 +9961,9 @@ void A_SetObjectTypeState(mobj_t *actor)
 //		1 = tracer
 // var2 = unused
 //
-void A_KnockBack(mobj_t *actor)
+void A_KnockBack(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	mobj_t *target;
 
@@ -9829,8 +9995,9 @@ void A_KnockBack(mobj_t *actor)
 //		lower 16 bits = If 1, xy momentum is lost. If 0, xy momentum is kept
 //		upper 16 bits = 0 - target, 1 - tracer
 //
-void A_PushAway(mobj_t *actor)
+void A_PushAway(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *target; // target
@@ -9865,8 +10032,9 @@ void A_PushAway(mobj_t *actor)
 // var1 = ammount of drained rings
 // var2 = unused
 //
-void A_RingDrain(mobj_t *actor)
+void A_RingDrain(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	player_t *player;
 
@@ -9893,8 +10061,9 @@ void A_RingDrain(mobj_t *actor)
 //		lower 16 bits = missile type
 //		upper 16 bits = height offset
 //
-void A_SplitShot(mobj_t *actor)
+void A_SplitShot(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	const UINT16 loc2lw = (UINT16)(locvar2 & 65535);
@@ -9936,8 +10105,9 @@ void A_SplitShot(mobj_t *actor)
 // var1 = splitting missile type
 // var2 = splitting angle
 //
-void A_MissileSplit(mobj_t *actor)
+void A_MissileSplit(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -9959,8 +10129,9 @@ void A_MissileSplit(mobj_t *actor)
 //		upper 16 bits = missile type #
 // var2 = height offset
 //
-void A_MultiShot(mobj_t *actor)
+void A_MultiShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t z, xr, yr;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
@@ -10022,8 +10193,9 @@ void A_MultiShot(mobj_t *actor)
 //		upper 16 bits = maximum step #
 // var2 = force
 //
-void A_InstaLoop(mobj_t *actor)
+void A_InstaLoop(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t force = max(locvar2, 1)*FRACUNIT; // defaults to 1 if var2 < 1
@@ -10051,8 +10223,9 @@ void A_InstaLoop(mobj_t *actor)
 //		lower 16 bits = vertical rotation speed in 1/10 fracunits per tic
 //		upper 16 bits = horizontal rotation speed in 1/10 fracunits per tic
 //
-void A_Custom3DRotate(mobj_t *actor)
+void A_Custom3DRotate(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10121,8 +10294,9 @@ void A_Custom3DRotate(mobj_t *actor)
 //		else, do not call a specific state if no players are available
 // var2 = state number
 //
-void A_SearchForPlayers(mobj_t *actor)
+void A_SearchForPlayers(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10152,8 +10326,9 @@ void A_SearchForPlayers(mobj_t *actor)
 //		upper 16 bits = numerator (defaults to 1 if zero)
 // var2 = state number
 //
-void A_CheckRandom(mobj_t *actor)
+void A_CheckRandom(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t chance = FRACUNIT;
@@ -10180,8 +10355,9 @@ void A_CheckRandom(mobj_t *actor)
 // var1 = if player rings >= var1 call state
 // var2 = state number
 //
-void A_CheckTargetRings(mobj_t *actor)
+void A_CheckTargetRings(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10202,8 +10378,9 @@ void A_CheckTargetRings(mobj_t *actor)
 // var1 = if player rings >= var1 call state
 // var2 = state number
 //
-void A_CheckRings(mobj_t *actor)
+void A_CheckRings(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	INT32 i, cntr = 0;
@@ -10225,8 +10402,9 @@ void A_CheckRings(mobj_t *actor)
 // var1 = if total player rings >= var1 call state
 // var2 = state number
 //
-void A_CheckTotalRings(mobj_t *actor)
+void A_CheckTotalRings(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10249,8 +10427,9 @@ void A_CheckTotalRings(mobj_t *actor)
 // var1 = if health <= var1 call state
 // var2 = state number
 //
-void A_CheckHealth(mobj_t *actor)
+void A_CheckHealth(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10270,8 +10449,9 @@ void A_CheckHealth(mobj_t *actor)
 //		upper 16 bits = 0 - target, 1 - tracer
 // var2 = state number
 //
-void A_CheckRange(mobj_t *actor)
+void A_CheckRange(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t dist;
@@ -10300,8 +10480,9 @@ void A_CheckRange(mobj_t *actor)
 //		upper 16 bits = 0 - target, 1 - tracer
 // var2 = state number
 //
-void A_CheckHeight(mobj_t *actor)
+void A_CheckHeight(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t height;
@@ -10330,8 +10511,9 @@ void A_CheckHeight(mobj_t *actor)
 //		upper 16 bits = 0 - target, 1 - tracer
 // var2 = state number
 //
-void A_CheckTrueRange(mobj_t *actor)
+void A_CheckTrueRange(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t height; // vertical range
@@ -10374,8 +10556,9 @@ void A_CheckTrueRange(mobj_t *actor)
 //		lower 16 bits = state to call
 //		upper 16 bits = range (if == 0, check whole map)
 //
-void A_CheckThingCount(mobj_t *actor)
+void A_CheckThingCount(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10426,8 +10609,9 @@ void A_CheckThingCount(mobj_t *actor)
 //		1 = tracer
 // var2 = state number
 //
-void A_CheckAmbush(mobj_t *actor)
+void A_CheckAmbush(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	angle_t at; // angle target is currently facing
@@ -10467,8 +10651,9 @@ void A_CheckAmbush(mobj_t *actor)
 // var1 = if custom value >= var1, call state
 // var2 = state number
 //
-void A_CheckCustomValue(mobj_t *actor)
+void A_CheckCustomValue(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10486,8 +10671,9 @@ void A_CheckCustomValue(mobj_t *actor)
 // var1 = if memory value >= var1, call state
 // var2 = state number
 //
-void A_CheckCusValMemo(mobj_t *actor)
+void A_CheckCusValMemo(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10511,8 +10697,9 @@ void A_CheckCusValMemo(mobj_t *actor)
 //      else if var2 == 1, substract var1 from the custom value
 //      else if var2 == 0, replace the custom value with var1
 //
-void A_SetCustomValue(mobj_t *actor)
+void A_SetCustomValue(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10558,8 +10745,9 @@ void A_SetCustomValue(mobj_t *actor)
 //      else if var2 == 1,  mem -= cv  ||  cv -= mem
 //      else mem = cv  ||  cv = mem
 //
-void A_UseCusValMemo(mobj_t *actor)
+void A_UseCusValMemo(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10621,8 +10809,9 @@ void A_UseCusValMemo(mobj_t *actor)
 //      else if var2 == 1, substract var1 from the target's custom value
 //      else if var2 == 0, replace the target's custom value with var1
 //
-void A_RelayCustomValue(mobj_t *actor)
+void A_RelayCustomValue(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10683,8 +10872,9 @@ void A_RelayCustomValue(mobj_t *actor)
 //      else if var2 == 1, only replace new action's var2 with custom value
 //      else if var2 == 0, only replace new action's var1 with custom value
 //
-void A_CusValAction(mobj_t *actor)
+void A_CusValAction(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10723,7 +10913,7 @@ void A_CusValAction(mobj_t *actor)
 	}
 
 	astate = &states[locvar1];
-	states[locvar1].action.acp1(actor);
+	states[locvar1].action(actor);
 }
 
 // Function: A_ForceStop
@@ -10735,8 +10925,9 @@ void A_CusValAction(mobj_t *actor)
 //      else, stop x-y-movement only
 // var2 = unused
 //
-void A_ForceStop(mobj_t *actor)
+void A_ForceStop(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_FORCESTOP, actor))
@@ -10754,8 +10945,9 @@ void A_ForceStop(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_ForceWin(mobj_t *actor)
+void A_ForceWin(void *data)
 {
+	mobj_t *actor = data;
 	INT32 i;
 
 	if (LUA_CallAction(A_FORCEWIN, actor))
@@ -10788,8 +10980,9 @@ void A_ForceWin(mobj_t *actor)
 //        else, actor solid
 // var2 = unused
 //
-void A_SpikeRetract(mobj_t *actor)
+void A_SpikeRetract(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_SPIKERETRACT, actor))
@@ -10826,8 +11019,9 @@ void A_SpikeRetract(mobj_t *actor)
 //        else if var1 == 6, set actor to raisestate
 // var2 = unused
 //
-void A_InfoState(mobj_t *actor)
+void A_InfoState(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	switch (locvar1)
 	{
@@ -10871,8 +11065,9 @@ void A_InfoState(mobj_t *actor)
 // var1 = repeat count
 // var2 = state to return to if extravalue2 > 0
 //
-void A_Repeat(mobj_t *actor)
+void A_Repeat(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -10895,8 +11090,9 @@ void A_Repeat(mobj_t *actor)
 //        upper 16 bits: 0 = actor, 1 = target, 2 = tracer
 //        lower 16 bits: 0 = instant change, 1 = smooth change
 //
-void A_SetScale(mobj_t *actor)
+void A_SetScale(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *target;
@@ -10938,8 +11134,9 @@ void A_SetScale(mobj_t *actor)
 // var1 = Mobj affected: 0 - actor, 1 - target, 2 - tracer
 // var2 = Action: 0 - Damage, 1 - Kill, 2 - Remove
 //
-void A_RemoteDamage(mobj_t *actor)
+void A_RemoteDamage(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *target; // we MUST have a target
@@ -10990,8 +11187,9 @@ void A_RemoteDamage(mobj_t *actor)
 // var1 = speed multiple
 // var2 = destination: 0 = target, 1 = tracer
 //
-void A_HomingChase(mobj_t *actor)
+void A_HomingChase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *dest;
@@ -11039,8 +11237,9 @@ void A_HomingChase(mobj_t *actor)
 //				use vertical angle variable as horizontal distance to cover during momz calculation
 //        upper 16 bits = height offset
 //
-void A_TrapShot(mobj_t *actor)
+void A_TrapShot(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	boolean oldstyle = (locvar2 & 32768) ? true : false;
@@ -11109,8 +11308,9 @@ void A_TrapShot(mobj_t *actor)
 // var1 = mobj to spawn
 // var2 = If 0, target only the actor's target. Else, target every player, period.
 //
-void A_VileTarget(mobj_t *actor)
+void A_VileTarget(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *fog;
@@ -11201,8 +11401,9 @@ void A_VileTarget(mobj_t *actor)
 //		Lower 16 bits = optional explosion object
 //		Upper 16 bits = If 0, attack only the actor's target. Else, attack all the players. All of them.
 //
-void A_VileAttack(mobj_t *actor)
+void A_VileAttack(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	sfxenum_t soundtoplay;
@@ -11319,8 +11520,9 @@ void A_VileAttack(mobj_t *actor)
 //		Lower 16 bits = mobj to spawn (0 doesn't spawn a line at all)
 //		Upper 16 bits = # to spawn (default is 8)
 //
-void A_VileFire(mobj_t *actor)
+void A_VileFire(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *dest;
@@ -11404,8 +11606,9 @@ void A_VileFire(mobj_t *actor)
 // var1 = lower-bound of frame length, in tics
 // var2 = optional sound to play
 //
-void A_BrakChase(mobj_t *actor)
+void A_BrakChase(void *data)
 {
+	mobj_t *actor = data;
 	INT32 delta;
 	INT32 lowerbound;
 	INT32 newtics;
@@ -11533,8 +11736,9 @@ void A_BrakChase(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = unused
 //
-void A_BrakFireShot(mobj_t *actor)
+void A_BrakFireShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t x, y, z;
 	INT32 locvar1 = var1;
 
@@ -11583,8 +11787,9 @@ void A_BrakFireShot(mobj_t *actor)
 //		Upper 16 bits: if 0, aim 1/3 of the way. Else, aim directly at target.
 //
 
-void A_BrakLobShot(mobj_t *actor)
+void A_BrakLobShot(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t v; // Velocity to shoot object
 	fixed_t a1, a2, aToUse; // Velocity squared
 	fixed_t g; // Gravity
@@ -11699,8 +11904,9 @@ void A_BrakLobShot(mobj_t *actor)
 //		Lower 16 bits: distance to toss them (No default - 0 does just that - but negatives will revert to 128)
 //		Upper 16 bits: airtime in tics (default 16)
 //
-void A_NapalmScatter(mobj_t *actor)
+void A_NapalmScatter(void *data)
 {
+	mobj_t *actor = data;
 	mobjtype_t typeOfShot = var1 & 0x0000FFFF; // Type
 	INT32 numToShoot = (var1 & 0xFFFF0000) >> 16; // How many
 	fixed_t distance = (var2 & 0x0000FFFF) << FRACBITS; // How far
@@ -11758,8 +11964,9 @@ void A_NapalmScatter(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SpawnFreshCopy(mobj_t *actor)
+void A_SpawnFreshCopy(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *newObject;
 
 	if (LUA_CallAction(A_SPAWNFRESHCOPY, actor))
@@ -11835,8 +12042,9 @@ mobj_t *P_InternalFlickySpawn(mobj_t *actor, mobjtype_t flickytype, fixed_t momz
 //		bit 19: if 1, spawn flicky slightly backward from spawn position. doesn't stack with 18.
 // var2 = upwards thrust for spawned flicky. If zero, default value is provided.
 //
-void A_FlickySpawn(mobj_t *actor)
+void A_FlickySpawn(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1 & 65535;
 	INT32 locvar2 = var2;
 	INT32 test = (var1 >> 16);
@@ -11902,8 +12110,9 @@ void P_InternalFlickySetColor(mobj_t *actor, UINT8 color)
 // If TMFF_STATIONARY (MF_GRENADEBOUNCE): Flickies stand in-place without gravity (unless they hop, then gravity is applied.)
 // If TMFF_HOP (MF_NOCLIPTHING): is flagged, Flickies hop.
 //
-void A_FlickyCenter(mobj_t *actor)
+void A_FlickyCenter(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	UINT16 flickytype = (locvar1 & 0xFFFF);
@@ -12035,8 +12244,9 @@ void P_InternalFlickyBubble(mobj_t *actor)
 // var1 = how far around the target (in angle constants) the flicky should look
 // var2 = distance from target to aim for
 //
-void A_FlickyAim(mobj_t *actor)
+void A_FlickyAim(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	boolean flickyhitwall = false;
@@ -12136,8 +12346,9 @@ void P_InternalFlickyFly(mobj_t *actor, fixed_t flyspeed, fixed_t targetdist, fi
 // var1 = how fast to fly
 // var2 = how far ahead the target should be considered
 //
-void A_FlickyFly(mobj_t *actor)
+void A_FlickyFly(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12156,8 +12367,9 @@ void A_FlickyFly(mobj_t *actor)
 // var1 = how fast to fly
 // var2 = how far ahead the target should be considered
 //
-void A_FlickySoar(mobj_t *actor)
+void A_FlickySoar(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12180,8 +12392,9 @@ void A_FlickySoar(mobj_t *actor)
 // var2 = state to change to upon slowing down
 // the spawnstate of the mobj = state to change to when above water
 //
-void A_FlickyCoast(mobj_t *actor)
+void A_FlickyCoast(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12227,8 +12440,9 @@ void P_InternalFlickyHop(mobj_t *actor, fixed_t momz, fixed_t momh, angle_t angl
 // var1 = vertical thrust
 // var2 = horizontal thrust
 //
-void A_FlickyHop(mobj_t *actor)
+void A_FlickyHop(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12245,8 +12459,9 @@ void A_FlickyHop(mobj_t *actor)
 // var1 = intended vertical thrust
 // var2 = intended horizontal thrust
 //
-void A_FlickyFlounder(mobj_t *actor)
+void A_FlickyFlounder(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	angle_t hopangle;
@@ -12268,8 +12483,9 @@ void A_FlickyFlounder(mobj_t *actor)
 // var2 = state to change to upon falling
 // the meleestate of the mobj = state to change to when underwater
 //
-void A_FlickyCheck(mobj_t *actor)
+void A_FlickyCheck(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12305,8 +12521,9 @@ void A_FlickyCheck(mobj_t *actor)
 // var1 = state to change to when falling below height relative to target
 // var2 = height relative to target to change state at
 //
-void A_FlickyHeightCheck(mobj_t *actor)
+void A_FlickyHeightCheck(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12340,8 +12557,9 @@ void A_FlickyHeightCheck(mobj_t *actor)
 // var2 = state to change to upon falling
 // the meleestate of the mobj = state to change to when underwater
 //
-void A_FlickyFlutter(mobj_t *actor)
+void A_FlickyFlutter(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12370,8 +12588,9 @@ void A_FlickyFlutter(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_FlameParticle(mobj_t *actor)
+void A_FlameParticle(void *data)
 {
+	mobj_t *actor = data;
 	mobjtype_t type = (mobjtype_t)(mobjinfo[actor->type].painchance);
 	fixed_t rad, hei;
 	mobj_t *particle;
@@ -12400,8 +12619,9 @@ void A_FlameParticle(mobj_t *actor)
 // var1 = bit 1 = bit 1 = don't make fast, bit 2 = don't set tracer
 // var2 = unused
 //
-void A_FadeOverlay(mobj_t *actor)
+void A_FadeOverlay(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *fade;
 	INT32 locvar1 = var1;
 
@@ -12433,8 +12653,9 @@ void A_FadeOverlay(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss5Jump(mobj_t *actor)
+void A_Boss5Jump(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t v; // Velocity to jump at
 	fixed_t a1, a2, aToUse; // Velocity squared
 	fixed_t g; // Gravity
@@ -12517,8 +12738,9 @@ void A_Boss5Jump(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_LightBeamReset(mobj_t *actor)
+void A_LightBeamReset(void *data)
 {
+	mobj_t *actor = data;
 	// INT32 locvar1 = var1;
 	// INT32 locvar2 = var2;
 
@@ -12546,8 +12768,9 @@ void A_LightBeamReset(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MineExplode(mobj_t *actor)
+void A_MineExplode(void *data)
 {
+	mobj_t *actor = data;
 	// INT32 locvar1 = var1;
 	// INT32 locvar2 = var2;
 
@@ -12600,8 +12823,9 @@ void A_MineExplode(mobj_t *actor)
 // var1 = Distance to alert at
 // var2 = unused
 //
-void A_MineRange(mobj_t *actor)
+void A_MineRange(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dm;
 	INT32 locvar1 = var1;
 	// INT32 locvar2 = var2;
@@ -12623,8 +12847,9 @@ void A_MineRange(mobj_t *actor)
 // var1 = Object type to connect to ground
 // var2 = Object type to place on ground
 //
-void A_ConnectToGround(mobj_t *actor)
+void A_ConnectToGround(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *work;
 	fixed_t endz;
 	angle_t ang;
@@ -12686,8 +12911,9 @@ void A_ConnectToGround(mobj_t *actor)
 //		var2 >> 16 = z
 //		var2 & 65535 = state
 //
-void A_SpawnParticleRelative(mobj_t *actor)
+void A_SpawnParticleRelative(void *data)
 {
+	mobj_t *actor = data;
 	INT16 x, y, z; // Want to be sure we can use negative values
 	statenum_t state;
 	mobj_t *mo;
@@ -12729,8 +12955,9 @@ void A_SpawnParticleRelative(mobj_t *actor)
 // var1 = same as A_MultiShot
 // var2 = same as A_MultiShot
 //
-void A_MultiShotDist(mobj_t *actor)
+void A_MultiShotDist(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12765,8 +12992,9 @@ void A_MultiShotDist(mobj_t *actor)
 //		var2 >> 16 = forward offset
 //		var2 & 65535 = vertical offset
 //
-void A_WhoCaresIfYourSonIsABee(mobj_t *actor)
+void A_WhoCaresIfYourSonIsABee(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t foffsetx;
@@ -12805,8 +13033,9 @@ void A_WhoCaresIfYourSonIsABee(mobj_t *actor)
 // var1 = state to go to when extravalue1
 // var2 = unused
 //
-void A_ParentTriesToSleep(mobj_t *actor)
+void A_ParentTriesToSleep(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_PARENTTRIESTOSLEEP, actor))
@@ -12835,8 +13064,9 @@ void A_ParentTriesToSleep(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_CryingToMomma(mobj_t *actor)
+void A_CryingToMomma(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_CRYINGTOMOMMA, actor))
 		return;
 
@@ -12862,8 +13092,9 @@ void A_CryingToMomma(mobj_t *actor)
 // var1 = mask
 // var2 = state to go
 //
-void A_CheckFlags2(mobj_t *actor)
+void A_CheckFlags2(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -12881,8 +13112,9 @@ void A_CheckFlags2(mobj_t *actor)
 // var1 = if 1, always go to ambush-marked waypoint. if 2, go to MT_BOSSFLYPOINT.
 // var2 = unused
 //
-void A_Boss5FindWaypoint(mobj_t *actor)
+void A_Boss5FindWaypoint(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	boolean avoidcenter;
 	INT32 i;
@@ -13071,8 +13303,9 @@ void A_Boss5FindWaypoint(mobj_t *actor)
 // var1 = state to change to upon being slow enough
 // var2 = minimum speed
 //
-void A_DoNPCSkid(mobj_t *actor)
+void A_DoNPCSkid(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t x, y, z;
@@ -13131,8 +13364,9 @@ void A_DoNPCSkid(mobj_t *actor)
 //        Otherwise, vertical and horizontal speed
 //        will be multiplied by this.
 //
-void A_DoNPCPain(mobj_t *actor)
+void A_DoNPCPain(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t vspeed = 0;
@@ -13182,8 +13416,9 @@ void A_DoNPCPain(mobj_t *actor)
 // var1 = value to set extravalue2 to
 // var2 = unused
 //
-void A_PrepareRepeat(mobj_t *actor)
+void A_PrepareRepeat(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_PREPAREREPEAT, actor))
@@ -13199,8 +13434,9 @@ void A_PrepareRepeat(mobj_t *actor)
 // var1 = maximum value to setextravalue2 to (normally)
 // var2 = pinch annoyance
 //
-void A_Boss5ExtraRepeat(mobj_t *actor)
+void A_Boss5ExtraRepeat(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	INT32 calc;
@@ -13237,8 +13473,9 @@ void A_Boss5ExtraRepeat(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_Boss5Calm(mobj_t *actor)
+void A_Boss5Calm(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_BOSS5CALM, actor))
 		return;
 
@@ -13253,8 +13490,9 @@ void A_Boss5Calm(mobj_t *actor)
 // var1 = state to change to upon hitting ground.
 // var2 = state to change to upon hitting ground if health == pinchhealth, assuming it exists
 //
-void A_Boss5CheckOnGround(mobj_t *actor)
+void A_Boss5CheckOnGround(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -13284,8 +13522,9 @@ void A_Boss5CheckOnGround(mobj_t *actor)
 // var1 = state to change to when hitting ground.
 // var2 = state to change to when falling.
 //
-void A_Boss5CheckFalling(mobj_t *actor)
+void A_Boss5CheckFalling(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -13311,8 +13550,9 @@ void A_Boss5CheckFalling(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = height offset (from default of +48 FU)
 //
-void A_Boss5PinchShot(mobj_t *actor)
+void A_Boss5PinchShot(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t zoffset;
@@ -13346,8 +13586,9 @@ void A_Boss5PinchShot(mobj_t *actor)
 // var1 = object # to shoot
 // var2 = height offset (from default of +48 FU)
 //
-void A_Boss5MakeItRain(mobj_t *actor)
+void A_Boss5MakeItRain(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	INT32 offset = (48 + locvar2)<<16; // upper 16 bits, not fixed_t!
@@ -13381,8 +13622,9 @@ void A_Boss5MakeItRain(mobj_t *actor)
 // var1 = state # to set on MT_BROKENROBOT (if 0 do nothing, if -1 go to if colorized)
 // var2 = mode (-1 = spin, 0 = make 1, & 1 make 8, & 2 alart mode)
 //
-void A_Boss5MakeJunk(mobj_t *actor)
+void A_Boss5MakeJunk(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	mobj_t *broked = NULL;
@@ -13488,8 +13730,9 @@ void A_Boss5MakeJunk(mobj_t *actor)
 // var1 upper 16 bits = distance limit
 // var2 = unused
 //
-void A_LookForBetter(mobj_t *actor)
+void A_LookForBetter(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_LOOKFORBETTER, actor))
@@ -13550,8 +13793,9 @@ static void P_DustRing(mobjtype_t mobjtype, UINT32 div, fixed_t x, fixed_t y, fi
 // var1 = Thing type to spawn as dust
 // var2 = unused
 //
-void A_Boss5BombExplode(mobj_t *actor)
+void A_Boss5BombExplode(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_BOSS5BOMBEXPLODE, actor))
@@ -13663,8 +13907,9 @@ static boolean PIT_DustDevilLaunch(mobj_t *thing)
 // var1 = unused
 // var2 = unused
 //
-void A_DustDevilThink(mobj_t *actor)
+void A_DustDevilThink(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t scale = actor->scale;
 	mobj_t *layer = actor->tracer;
 	INT32 xl, xh, yl, yh;
@@ -13813,8 +14058,9 @@ static boolean PIT_TNTExplode(mobj_t *nearby)
 // var1 = Thing type to spawn as dust.
 // var2 = unused
 //
-void A_TNTExplode(mobj_t *actor)
+void A_TNTExplode(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 xl, xh, yl, yh;
 	static mappoint_t epicenter = {0,0,0};
@@ -13879,8 +14125,9 @@ void A_TNTExplode(mobj_t *actor)
 // var1 = Frame range.
 // var2 = unused
 //
-void A_DebrisRandom(mobj_t *actor)
+void A_DebrisRandom(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_DEBRISRANDOM, actor))
@@ -13913,8 +14160,9 @@ static mobj_t *P_TrainSeg(mobj_t *src, fixed_t x, fixed_t y, fixed_t z, angle_t
 // var1 = Train width.
 // var2 = Train length.
 //
-void A_TrainCameo(mobj_t *actor)
+void A_TrainCameo(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t x = actor->x;
@@ -13952,8 +14200,9 @@ void A_TrainCameo(mobj_t *actor)
 // var1 = Train width.
 // var2 = Train length.
 //
-void A_TrainCameo2(mobj_t *actor)
+void A_TrainCameo2(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t x = actor->x;
@@ -13986,8 +14235,9 @@ void A_TrainCameo2(mobj_t *actor)
 // var1 = Mobj type.
 // var2 = Unused
 //
-void A_CanarivoreGas(mobj_t *actor)
+void A_CanarivoreGas(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 
 	if (LUA_CallAction(A_CANARIVOREGAS, actor))
@@ -14005,8 +14255,9 @@ void A_CanarivoreGas(mobj_t *actor)
 // var1 = Fuse (if 0, default to TICRATE/2).
 // var2 = Unused
 //
-void A_KillSegments(mobj_t *actor)
+void A_KillSegments(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	mobj_t *seg = actor->tracer;
 	INT32 fuse = locvar1 ? locvar1 : TICRATE/2;
@@ -14090,8 +14341,9 @@ static void P_SnapperLegPlace(mobj_t *mo)
 // var1 = Leg mobj type.
 // var2 = Head mobj type.
 //
-void A_SnapperSpawn(mobj_t *actor)
+void A_SnapperSpawn(void *data)
 {
+	mobj_t *actor = data;
 	mobjtype_t legtype = (mobjtype_t)var1;
 	mobjtype_t headtype = (mobjtype_t)var2;
 	mobj_t *ptr = actor;
@@ -14147,8 +14399,9 @@ void A_SnapperSpawn(mobj_t *actor)
 // var1 = Unused
 // var2 = Unused
 //
-void A_SnapperThinker(mobj_t *actor)
+void A_SnapperThinker(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t x0 = actor->x;
 	fixed_t y0 = actor->y;
 	fixed_t xs, ys;
@@ -14269,8 +14522,9 @@ void A_SnapperThinker(mobj_t *actor)
 // var1 = mobjtype for sides
 // var2 = distance sides should be placed apart
 //
-void A_SaloonDoorSpawn(mobj_t *actor)
+void A_SaloonDoorSpawn(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	angle_t ang = actor->angle;
@@ -14310,8 +14564,9 @@ void A_SaloonDoorSpawn(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_MinecartSparkThink(mobj_t *actor)
+void A_MinecartSparkThink(void *data)
 {
+	mobj_t *actor = data;
 	fixed_t dx = actor->momx;
 	fixed_t dy = actor->momy;
 	fixed_t dz, dm;
@@ -14347,8 +14602,9 @@ void A_MinecartSparkThink(mobj_t *actor)
 // var1 = Modulo
 // var2 = State
 //
-void A_ModuloToState(mobj_t *actor)
+void A_ModuloToState(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -14367,8 +14623,9 @@ void A_ModuloToState(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_LavafallRocks(mobj_t *actor)
+void A_LavafallRocks(void *data)
 {
+	mobj_t *actor = data;
 	UINT8 i;
 
 	if (LUA_CallAction(A_LAVAFALLROCKS, actor))
@@ -14397,8 +14654,9 @@ void A_LavafallRocks(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_LavafallLava(mobj_t *actor)
+void A_LavafallLava(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *lavafall;
 	UINT8 i;
 
@@ -14429,8 +14687,9 @@ void A_LavafallLava(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_FallingLavaCheck(mobj_t *actor)
+void A_FallingLavaCheck(void *data)
 {
+	mobj_t *actor = data;
 	if (LUA_CallAction(A_FALLINGLAVACHECK, actor))
 		return;
 
@@ -14451,8 +14710,9 @@ void A_FallingLavaCheck(mobj_t *actor)
 // var1 = Scale to shrink to
 // var2 = Shrinking speed
 //
-void A_FireShrink(mobj_t *actor)
+void A_FireShrink(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -14478,8 +14738,9 @@ void A_FireShrink(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_SpawnPterabytes(mobj_t *actor)
+void A_SpawnPterabytes(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *waypoint, *ptera;
 	fixed_t c, s;
 	fixed_t rad = 280*FRACUNIT;
@@ -14528,8 +14789,9 @@ void A_SpawnPterabytes(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_PterabyteHover(mobj_t *actor)
+void A_PterabyteHover(void *data)
 {
+	mobj_t *actor = data;
 	angle_t ang, fa;
 
 	if (LUA_CallAction(A_PTERABYTEHOVER, actor))
@@ -14549,8 +14811,9 @@ void A_PterabyteHover(mobj_t *actor)
 // var1 = Distance currently spawned rock should travel before spawning a new one
 // var2 = Object type to spawn
 //
-void A_RolloutSpawn(mobj_t *actor)
+void A_RolloutSpawn(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 
@@ -14583,8 +14846,9 @@ void A_RolloutSpawn(mobj_t *actor)
 // var1 = Drag
 // var2 = Vertical bobbing speed factor
 //
-void A_RolloutRock(mobj_t *actor)
+void A_RolloutRock(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	UINT8 maxframes = actor->info->reactiontime; // number of frames the mobj cycles through
@@ -14683,8 +14947,9 @@ void A_RolloutRock(mobj_t *actor)
 // var1 = Tail segments to spawn
 // var2 = unused
 //
-void A_DragonbomberSpawn(mobj_t *actor)
+void A_DragonbomberSpawn(void *data)
 {
+	mobj_t *actor = data;
 	UINT8 i;
 	mobj_t *mo = actor;
 
@@ -14723,8 +14988,9 @@ void A_DragonbomberSpawn(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_DragonWing(mobj_t *actor)
+void A_DragonWing(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *target = actor->target;
 	fixed_t x, y;
 
@@ -14749,8 +15015,9 @@ void A_DragonWing(mobj_t *actor)
 // var1 = unused
 // var2 = unused
 //
-void A_DragonSegment(mobj_t *actor)
+void A_DragonSegment(void *data)
 {
+	mobj_t *actor = data;
 	mobj_t *target = actor->target;
 	fixed_t dist;
 	fixed_t radius;
@@ -14792,8 +15059,9 @@ void A_DragonSegment(mobj_t *actor)
 //     &1: height is absolute
 //     &2: scale with actor's scale
 //
-void A_ChangeHeight(mobj_t *actor)
+void A_ChangeHeight(void *data)
 {
+	mobj_t *actor = data;
 	INT32 locvar1 = var1;
 	INT32 locvar2 = var2;
 	fixed_t height = locvar1;
diff --git a/src/p_floor.c b/src/p_floor.c
index 118b4bdbc7..3598baf8bb 100644
--- a/src/p_floor.c
+++ b/src/p_floor.c
@@ -1625,7 +1625,7 @@ void EV_DoFloor(mtag_t tag, line_t *line, floor_e floortype)
 		sec->floordata = dofloor;
 
 		// set up some generic aspects of the floormove_t
-		dofloor->thinker.function.acp1 = (actionf_p1)T_MoveFloor;
+		dofloor->thinker.function = (actionf_p1)T_MoveFloor;
 		dofloor->type = floortype;
 		dofloor->crush = false; // default: types that crush will change this
 		dofloor->sector = sec;
@@ -1760,7 +1760,7 @@ void EV_DoElevator(mtag_t tag, line_t *line, elevator_e elevtype)
 		P_AddThinker(THINK_MAIN, &elevator->thinker);
 		sec->floordata = elevator;
 		sec->ceilingdata = elevator;
-		elevator->thinker.function.acp1 = (actionf_p1)T_MoveElevator;
+		elevator->thinker.function = (actionf_p1)T_MoveElevator;
 		elevator->type = elevtype;
 		elevator->sourceline = line;
 		elevator->distance = 1; // Always crush unless otherwise
@@ -1970,7 +1970,7 @@ void EV_BounceSector(sector_t *sec, fixed_t momz, line_t *sourceline)
 	bouncer = Z_Calloc(sizeof (*bouncer), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &bouncer->thinker);
 	sec->ceilingdata = bouncer;
-	bouncer->thinker.function.acp1 = (actionf_p1)T_BounceCheese;
+	bouncer->thinker.function = (actionf_p1)T_BounceCheese;
 
 	// set up the fields according to the type of elevator action
 	bouncer->sourceline = sourceline;
@@ -1996,7 +1996,7 @@ void EV_DoContinuousFall(sector_t *sec, sector_t *backsector, fixed_t spd, boole
 	// create and initialize new thinker
 	faller = Z_Calloc(sizeof (*faller), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &faller->thinker);
-	faller->thinker.function.acp1 = (actionf_p1)T_ContinuousFalling;
+	faller->thinker.function = (actionf_p1)T_ContinuousFalling;
 
 	// set up the fields
 	faller->sector = sec;
@@ -2032,7 +2032,7 @@ INT32 EV_StartCrumble(sector_t *sec, ffloor_t *rover, boolean floating,
 	// create and initialize new crumble thinker
 	crumble = Z_Calloc(sizeof (*crumble), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &crumble->thinker);
-	crumble->thinker.function.acp1 = (actionf_p1)T_StartCrumble;
+	crumble->thinker.function = (actionf_p1)T_StartCrumble;
 
 	// set up the fields
 	crumble->sector = sec;
@@ -2108,7 +2108,7 @@ void EV_MarioBlock(ffloor_t *rover, sector_t *sector, mobj_t *puncher)
 		P_AddThinker(THINK_MAIN, &block->thinker);
 		roversec->floordata = block;
 		roversec->ceilingdata = block;
-		block->thinker.function.acp1 = (actionf_p1)T_MarioBlock;
+		block->thinker.function = (actionf_p1)T_MarioBlock;
 
 		// Set up the fields
 		block->sector = roversec;
diff --git a/src/p_lights.c b/src/p_lights.c
index 971165e88e..c743a1c063 100644
--- a/src/p_lights.c
+++ b/src/p_lights.c
@@ -78,7 +78,7 @@ fireflicker_t *P_SpawnAdjustableFireFlicker(sector_t *sector, INT16 lighta, INT1
 
 	P_AddThinker(THINK_MAIN, &flick->thinker);
 
-	flick->thinker.function.acp1 = (actionf_p1)T_FireFlicker;
+	flick->thinker.function = (actionf_p1)T_FireFlicker;
 	flick->sector = sector;
 	flick->maxlight = max(lighta, lightb);
 	flick->minlight = min(lighta, lightb);
@@ -136,7 +136,7 @@ void P_SpawnLightningFlash(sector_t *sector)
 
 	if (sector->lightingdata)
 	{
-		if (((lightflash_t *)sector->lightingdata)->thinker.function.acp1
+		if (((lightflash_t *)sector->lightingdata)->thinker.function
 			== (actionf_p1)T_LightningFlash)
 		{
 			// lightning was already flashing in this sector
@@ -153,7 +153,7 @@ void P_SpawnLightningFlash(sector_t *sector)
 
 	P_AddThinker(THINK_MAIN, &flash->thinker);
 
-	flash->thinker.function.acp1 = (actionf_p1)T_LightningFlash;
+	flash->thinker.function = (actionf_p1)T_LightningFlash;
 	flash->sector = sector;
 	flash->maxlight = 255;
 	flash->minlight = minlight;
@@ -215,7 +215,7 @@ strobe_t *P_SpawnAdjustableStrobeFlash(sector_t *sector, INT16 lighta, INT16 lig
 	flash->sector = sector;
 	flash->darktime = darktime;
 	flash->brighttime = brighttime;
-	flash->thinker.function.acp1 = (actionf_p1)T_StrobeFlash;
+	flash->thinker.function = (actionf_p1)T_StrobeFlash;
 	flash->maxlight = max(lighta, lightb);
 	flash->minlight = min(lighta, lightb);
 
@@ -285,7 +285,7 @@ glow_t *P_SpawnAdjustableGlowingLight(sector_t *sector, INT16 lighta, INT16 ligh
 	g->sector = sector;
 	g->minlight = min(lighta, lightb);
 	g->maxlight = max(lighta, lightb);
-	g->thinker.function.acp1 = (actionf_p1)T_Glow;
+	g->thinker.function = (actionf_p1)T_Glow;
 	g->direction = 1;
 	g->speed = (INT16)(length/4);
 	if (g->speed > (g->maxlight - g->minlight)/2) // don't make it ridiculous speed
@@ -333,7 +333,7 @@ void P_FadeLightBySector(sector_t *sector, INT32 destvalue, INT32 speed, boolean
 	}
 
 	ll = Z_Calloc(sizeof (*ll), PU_LEVSPEC, NULL);
-	ll->thinker.function.acp1 = (actionf_p1)T_LightFade;
+	ll->thinker.function = (actionf_p1)T_LightFade;
 	sector->lightingdata = ll; // set it to the lightlevel_t
 
 	P_AddThinker(THINK_MAIN, &ll->thinker); // add thinker
@@ -368,7 +368,7 @@ void P_FadeLight(INT16 tag, INT32 destvalue, INT32 speed, boolean ticbased, bool
 	{
 		if (!force && ticbased // always let speed fader execute
 			&& sectors[i].lightingdata
-			&& ((lightlevel_t*)sectors[i].lightingdata)->thinker.function.acp1 == (actionf_p1)T_LightFade)
+			&& ((lightlevel_t*)sectors[i].lightingdata)->thinker.function == (actionf_p1)T_LightFade)
 			// && ((lightlevel_t*)sectors[i].lightingdata)->timer > 2)
 		{
 			CONS_Debug(DBG_GAMELOGIC, "Line type 420 Executor: Fade light thinker already exists, timer: %d\n", ((lightlevel_t*)sectors[i].lightingdata)->timer);
diff --git a/src/p_local.h b/src/p_local.h
index 85a31cf898..e36bc133a6 100644
--- a/src/p_local.h
+++ b/src/p_local.h
@@ -304,7 +304,7 @@ void P_SceneryThinker(mobj_t *mobj);
 // To test it in Lua, check mobj.valid
 FUNCINLINE static ATTRINLINE boolean P_MobjWasRemoved(mobj_t *mobj)
 {
-	return mobj == NULL || mobj->thinker.function.acp1 != (actionf_p1)P_MobjThinker;
+	return mobj == NULL || mobj->thinker.function != (actionf_p1)P_MobjThinker;
 }
 
 fixed_t P_MobjFloorZ(sector_t *sector, sector_t *boundsec, fixed_t x, fixed_t y, fixed_t radius, line_t *line, boolean lowest, boolean perfect);
diff --git a/src/p_map.c b/src/p_map.c
index fce17f8c4b..29d26c3567 100644
--- a/src/p_map.c
+++ b/src/p_map.c
@@ -4310,7 +4310,7 @@ static boolean PIT_ChangeSector(mobj_t *thing, boolean realcrush, boolean crunch
 				{
 					crumble_t *crumbler;
 
-					if (think->function.acp1 != (actionf_p1)T_StartCrumble)
+					if (think->function != (actionf_p1)T_StartCrumble)
 						continue;
 
 					crumbler = (crumble_t *)think;
diff --git a/src/p_mobj.c b/src/p_mobj.c
index ec107ff711..200b5b4183 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -63,7 +63,7 @@ void P_RunCachedActions(void)
 		var2 = states[ac->statenum].var2;
 		astate = &states[ac->statenum];
 		if (ac->mobj && !P_MobjWasRemoved(ac->mobj)) // just in case...
-			states[ac->statenum].action.acp1(ac->mobj);
+			states[ac->statenum].action(ac->mobj);
 		next = ac->next;
 		Z_Free(ac);
 	}
@@ -472,12 +472,12 @@ static boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state)
 		// Modified handling.
 		// Call action functions when the state is set
 
-		if (st->action.acp1)
+		if (st->action)
 		{
 			var1 = st->var1;
 			var2 = st->var2;
 			astate = st;
-			st->action.acp1(mobj);
+			st->action(mobj);
 
 			// woah. a player was removed by an action.
 			// this sounds like a VERY BAD THING, but there's nothing we can do now...
@@ -614,12 +614,12 @@ boolean P_SetMobjState(mobj_t *mobj, statenum_t state)
 		// Modified handling.
 		// Call action functions when the state is set
 
-		if (st->action.acp1)
+		if (st->action)
 		{
 			var1 = st->var1;
 			var2 = st->var2;
 			astate = st;
-			st->action.acp1(mobj);
+			st->action(mobj);
 			if (P_MobjWasRemoved(mobj))
 				return false;
 		}
@@ -3513,7 +3513,7 @@ boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled
 		if (!P_TryCameraMove(thiscam->x + thiscam->momx, thiscam->y + thiscam->momy, thiscam)) // Thanks for the greatly improved camera, Lach -- Sev
 		{ // Never fails for 2D mode.
 			mobj_t dummy;
-			dummy.thinker.function.acp1 = (actionf_p1)P_MobjThinker;
+			dummy.thinker.function = (actionf_p1)P_MobjThinker;
 			dummy.subsector = thiscam->subsector;
 			dummy.x = thiscam->x;
 			dummy.y = thiscam->y;
@@ -9881,13 +9881,13 @@ static void P_FiringThink(mobj_t *mobj)
 	if (mobj->health <= 0)
 		return;
 
-	if (mobj->state->action.acp1 == (actionf_p1)A_Boss1Laser)
+	if (mobj->state->action == (actionf_p1)A_Boss1Laser)
 	{
 		if (mobj->state->tics > 1)
 		{
 			var1 = mobj->state->var1;
 			var2 = mobj->state->var2 & 65535;
-			mobj->state->action.acp1(mobj);
+			mobj->state->action(mobj);
 		}
 	}
 	else if (leveltime & 1) // Fire mode
@@ -10648,7 +10648,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 	}
 
 	// this is officially a mobj, declared as soon as possible.
-	mobj->thinker.function.acp1 = (actionf_p1)P_MobjThinker;
+	mobj->thinker.function = (actionf_p1)P_MobjThinker;
 	mobj->type = type;
 	mobj->info = info;
 
@@ -10834,7 +10834,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 					ball->threshold = ball->radius + mobj->radius + FixedMul(ball->info->painchance, ball->scale);
 
 					var1 = ball->state->var1, var2 = ball->state->var2;
-					ball->state->action.acp1(ball);
+					ball->state->action(ball);
 				}
 			}
 			break;
@@ -11056,7 +11056,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 	}
 
 	// Call action functions when the state is set
-	if (st->action.acp1 && (mobj->flags & MF_RUNSPAWNFUNC))
+	if (st->action && (mobj->flags & MF_RUNSPAWNFUNC))
 	{
 		if (levelloading)
 		{
@@ -11071,7 +11071,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 			var1 = st->var1;
 			var2 = st->var2;
 			astate = st;
-			st->action.acp1(mobj);
+			st->action(mobj);
 			// DANGER! This can cause P_SpawnMobj to return NULL!
 			// Avoid using MF_RUNSPAWNFUNC on mobjs whose spawn state expects target or tracer to already be set!
 			if (P_MobjWasRemoved(mobj))
@@ -11119,7 +11119,7 @@ static precipmobj_t *P_SpawnPrecipMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype
 	mobj->z = z;
 	mobj->momz = mobjinfo[type].speed;
 
-	mobj->thinker.function.acp1 = (actionf_p1)P_NullPrecipThinker;
+	mobj->thinker.function = (actionf_p1)P_NullPrecipThinker;
 	P_AddThinker(THINK_PRECIP, &mobj->thinker);
 
 	CalculatePrecipFloor(mobj);
@@ -11140,14 +11140,14 @@ static inline precipmobj_t *P_SpawnRainMobj(fixed_t x, fixed_t y, fixed_t z, mob
 {
 	precipmobj_t *mo = P_SpawnPrecipMobj(x,y,z,type);
 	mo->precipflags |= PCF_RAIN;
-	//mo->thinker.function.acp1 = (actionf_p1)P_RainThinker;
+	//mo->thinker.function = (actionf_p1)P_RainThinker;
 	return mo;
 }
 
 static inline precipmobj_t *P_SpawnSnowMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
 {
 	precipmobj_t *mo = P_SpawnPrecipMobj(x,y,z,type);
-	//mo->thinker.function.acp1 = (actionf_p1)P_SnowThinker;
+	//mo->thinker.function = (actionf_p1)P_SnowThinker;
 	return mo;
 }
 
@@ -11301,7 +11301,7 @@ void P_RemovePrecipMobj(precipmobj_t *mobj)
 void P_RemoveSavegameMobj(mobj_t *mobj)
 {
 	// unlink from sector and block lists
-	if (((thinker_t *)mobj)->function.acp1 == (actionf_p1)P_NullPrecipThinker)
+	if (((thinker_t *)mobj)->function == (actionf_p1)P_NullPrecipThinker)
 	{
 		P_UnsetPrecipThingPosition((precipmobj_t *)mobj);
 
diff --git a/src/p_polyobj.c b/src/p_polyobj.c
index 3d1a38d36f..fa28bfb597 100644
--- a/src/p_polyobj.c
+++ b/src/p_polyobj.c
@@ -2034,7 +2034,7 @@ boolean EV_DoPolyObjRotate(polyrotdata_t *prdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polyrotate_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjRotate;
+	th->thinker.function = (actionf_p1)T_PolyObjRotate;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2106,7 +2106,7 @@ boolean EV_DoPolyObjMove(polymovedata_t *pmdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polymove_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjMove;
+	th->thinker.function = (actionf_p1)T_PolyObjMove;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2168,7 +2168,7 @@ boolean EV_DoPolyObjWaypoint(polywaypointdata_t *pwdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polywaypoint_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjWaypoint;
+	th->thinker.function = (actionf_p1)T_PolyObjWaypoint;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2236,7 +2236,7 @@ static void Polyobj_doSlideDoor(polyobj_t *po, polydoordata_t *doordata)
 
 	// allocate and add a new slide door thinker
 	th = Z_Malloc(sizeof(polyslidedoor_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyDoorSlide;
+	th->thinker.function = (actionf_p1)T_PolyDoorSlide;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 
 	// point the polyobject to this thinker
@@ -2287,7 +2287,7 @@ static void Polyobj_doSwingDoor(polyobj_t *po, polydoordata_t *doordata)
 
 	// allocate and add a new swing door thinker
 	th = Z_Malloc(sizeof(polyswingdoor_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyDoorSwing;
+	th->thinker.function = (actionf_p1)T_PolyDoorSwing;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 
 	// point the polyobject to this thinker
@@ -2372,7 +2372,7 @@ boolean EV_DoPolyObjDisplace(polydisplacedata_t *prdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polydisplace_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjDisplace;
+	th->thinker.function = (actionf_p1)T_PolyObjDisplace;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2421,7 +2421,7 @@ boolean EV_DoPolyObjRotDisplace(polyrotdisplacedata_t *prdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polyrotdisplace_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjRotDisplace;
+	th->thinker.function = (actionf_p1)T_PolyObjRotDisplace;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2526,7 +2526,7 @@ boolean EV_DoPolyObjFlag(polyflagdata_t *pfdata)
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polymove_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjFlag;
+	th->thinker.function = (actionf_p1)T_PolyObjFlag;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
@@ -2674,12 +2674,12 @@ boolean EV_DoPolyObjFade(polyfadedata_t *pfdata)
 	if (po->translucency == pfdata->destvalue)
 		return true;
 
-	if (po->thinker && po->thinker->function.acp1 == (actionf_p1)T_PolyObjFade)
+	if (po->thinker && po->thinker->function == (actionf_p1)T_PolyObjFade)
 		P_RemoveThinker(po->thinker);
 
 	// create a new thinker
 	th = Z_Malloc(sizeof(polyfade_t), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_PolyObjFade;
+	th->thinker.function = (actionf_p1)T_PolyObjFade;
 	P_AddThinker(THINK_POLYOBJ, &th->thinker);
 	po->thinker = &th->thinker;
 
diff --git a/src/p_saveg.c b/src/p_saveg.c
index c33cc0f82a..e4f10f4744 100644
--- a/src/p_saveg.c
+++ b/src/p_saveg.c
@@ -727,7 +727,7 @@ static void P_NetUnArchivePlayers(save_t *save_p)
 		players[i].bumpertime = P_ReadUINT32(save_p);
 		players[i].drillmeter = P_ReadINT32(save_p);
 		players[i].drilldelay = P_ReadUINT8(save_p);
-		players[i].bonustime = (boolean)P_ReadUINT8(save_p);
+		players[i].bonustime = P_ReadUINT8(save_p);
 		players[i].oldscale = P_ReadFixed(save_p);
 		players[i].mare = P_ReadUINT8(save_p);
 		players[i].marelap = P_ReadUINT8(save_p);
@@ -2972,213 +2972,213 @@ static void P_NetArchiveThinkers(save_t *save_p)
 		// save off the current thinkers
 		for (th = thlist[i].next; th != &thlist[i]; th = th->next)
 		{
-			if (!(th->removing || th->function.acp1 == (actionf_p1)P_NullPrecipThinker))
+			if (!(th->removing || th->function == (actionf_p1)P_NullPrecipThinker))
 				numsaved++;
 
-			if (th->function.acp1 == (actionf_p1)P_MobjThinker)
+			if (th->function == (actionf_p1)P_MobjThinker)
 			{
 				SaveMobjThinker(save_p, th, tc_mobj);
 				continue;
 			}
 	#ifdef PARANOIA
-			else if (th->function.acp1 == (actionf_p1)P_NullPrecipThinker);
+			else if (th->function == (actionf_p1)P_NullPrecipThinker);
 	#endif
-			else if (th->function.acp1 == (actionf_p1)T_MoveCeiling)
+			else if (th->function == (actionf_p1)T_MoveCeiling)
 			{
 				SaveCeilingThinker(save_p, th, tc_ceiling);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_CrushCeiling)
+			else if (th->function == (actionf_p1)T_CrushCeiling)
 			{
 				SaveCeilingThinker(save_p, th, tc_crushceiling);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_MoveFloor)
+			else if (th->function == (actionf_p1)T_MoveFloor)
 			{
 				SaveFloormoveThinker(save_p, th, tc_floor);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_LightningFlash)
+			else if (th->function == (actionf_p1)T_LightningFlash)
 			{
 				SaveLightflashThinker(save_p, th, tc_flash);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_StrobeFlash)
+			else if (th->function == (actionf_p1)T_StrobeFlash)
 			{
 				SaveStrobeThinker(save_p, th, tc_strobe);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Glow)
+			else if (th->function == (actionf_p1)T_Glow)
 			{
 				SaveGlowThinker(save_p, th, tc_glow);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_FireFlicker)
+			else if (th->function == (actionf_p1)T_FireFlicker)
 			{
 				SaveFireflickerThinker(save_p, th, tc_fireflicker);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_MoveElevator)
+			else if (th->function == (actionf_p1)T_MoveElevator)
 			{
 				SaveElevatorThinker(save_p, th, tc_elevator);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_ContinuousFalling)
+			else if (th->function == (actionf_p1)T_ContinuousFalling)
 			{
 				SaveContinuousFallThinker(save_p, th, tc_continuousfalling);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_ThwompSector)
+			else if (th->function == (actionf_p1)T_ThwompSector)
 			{
 				SaveThwompThinker(save_p, th, tc_thwomp);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_NoEnemiesSector)
+			else if (th->function == (actionf_p1)T_NoEnemiesSector)
 			{
 				SaveNoEnemiesThinker(save_p, th, tc_noenemies);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_EachTimeThinker)
+			else if (th->function == (actionf_p1)T_EachTimeThinker)
 			{
 				SaveEachTimeThinker(save_p, th, tc_eachtime);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_RaiseSector)
+			else if (th->function == (actionf_p1)T_RaiseSector)
 			{
 				SaveRaiseThinker(save_p, th, tc_raisesector);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_CameraScanner)
+			else if (th->function == (actionf_p1)T_CameraScanner)
 			{
 				SaveElevatorThinker(save_p, th, tc_camerascanner);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Scroll)
+			else if (th->function == (actionf_p1)T_Scroll)
 			{
 				SaveScrollThinker(save_p, th, tc_scroll);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Friction)
+			else if (th->function == (actionf_p1)T_Friction)
 			{
 				SaveFrictionThinker(save_p, th, tc_friction);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Pusher)
+			else if (th->function == (actionf_p1)T_Pusher)
 			{
 				SavePusherThinker(save_p, th, tc_pusher);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_BounceCheese)
+			else if (th->function == (actionf_p1)T_BounceCheese)
 			{
 				SaveBounceCheeseThinker(save_p, th, tc_bouncecheese);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_StartCrumble)
+			else if (th->function == (actionf_p1)T_StartCrumble)
 			{
 				SaveCrumbleThinker(save_p, th, tc_startcrumble);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_MarioBlock)
+			else if (th->function == (actionf_p1)T_MarioBlock)
 			{
 				SaveMarioBlockThinker(save_p, th, tc_marioblock);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_MarioBlockChecker)
+			else if (th->function == (actionf_p1)T_MarioBlockChecker)
 			{
 				SaveMarioCheckThinker(save_p, th, tc_marioblockchecker);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_FloatSector)
+			else if (th->function == (actionf_p1)T_FloatSector)
 			{
 				SaveFloatThinker(save_p, th, tc_floatsector);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_LaserFlash)
+			else if (th->function == (actionf_p1)T_LaserFlash)
 			{
 				SaveLaserThinker(save_p, th, tc_laserflash);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_LightFade)
+			else if (th->function == (actionf_p1)T_LightFade)
 			{
 				SaveLightlevelThinker(save_p, th, tc_lightfade);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_ExecutorDelay)
+			else if (th->function == (actionf_p1)T_ExecutorDelay)
 			{
 				SaveExecutorThinker(save_p, th, tc_executor);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Disappear)
+			else if (th->function == (actionf_p1)T_Disappear)
 			{
 				SaveDisappearThinker(save_p, th, tc_disappear);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_Fade)
+			else if (th->function == (actionf_p1)T_Fade)
 			{
 				SaveFadeThinker(save_p, th, tc_fade);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_FadeColormap)
+			else if (th->function == (actionf_p1)T_FadeColormap)
 			{
 				SaveFadeColormapThinker(save_p, th, tc_fadecolormap);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PlaneDisplace)
+			else if (th->function == (actionf_p1)T_PlaneDisplace)
 			{
 				SavePlaneDisplaceThinker(save_p, th, tc_planedisplace);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjRotate)
+			else if (th->function == (actionf_p1)T_PolyObjRotate)
 			{
 				SavePolyrotatetThinker(save_p, th, tc_polyrotate);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjMove)
+			else if (th->function == (actionf_p1)T_PolyObjMove)
 			{
 				SavePolymoveThinker(save_p, th, tc_polymove);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjWaypoint)
+			else if (th->function == (actionf_p1)T_PolyObjWaypoint)
 			{
 				SavePolywaypointThinker(save_p, th, tc_polywaypoint);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyDoorSlide)
+			else if (th->function == (actionf_p1)T_PolyDoorSlide)
 			{
 				SavePolyslidedoorThinker(save_p, th, tc_polyslidedoor);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyDoorSwing)
+			else if (th->function == (actionf_p1)T_PolyDoorSwing)
 			{
 				SavePolyswingdoorThinker(save_p, th, tc_polyswingdoor);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjFlag)
+			else if (th->function == (actionf_p1)T_PolyObjFlag)
 			{
 				SavePolymoveThinker(save_p, th, tc_polyflag);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjDisplace)
+			else if (th->function == (actionf_p1)T_PolyObjDisplace)
 			{
 				SavePolydisplaceThinker(save_p, th, tc_polydisplace);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjRotDisplace)
+			else if (th->function == (actionf_p1)T_PolyObjRotDisplace)
 			{
 				SavePolyrotdisplaceThinker(save_p, th, tc_polyrotdisplace);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_PolyObjFade)
+			else if (th->function == (actionf_p1)T_PolyObjFade)
 			{
 				SavePolyfadeThinker(save_p, th, tc_polyfade);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_DynamicSlopeLine)
+			else if (th->function == (actionf_p1)T_DynamicSlopeLine)
 			{
 				SaveDynamicLineSlopeThinker(save_p, th, tc_dynslopeline);
 				continue;
 			}
-			else if (th->function.acp1 == (actionf_p1)T_DynamicSlopeVert)
+			else if (th->function == (actionf_p1)T_DynamicSlopeVert)
 			{
 				SaveDynamicVertexSlopeThinker(save_p, th, tc_dynslopevert);
 				continue;
@@ -3310,7 +3310,7 @@ static thinker_t* LoadMobjThinker(save_t *save_p, actionf_p1 thinker)
 		mobj = Z_Calloc(sizeof (*mobj), PU_LEVEL, NULL);
 
 	// declare this as a valid mobj as soon as possible.
-	mobj->thinker.function.acp1 = thinker;
+	mobj->thinker.function = thinker;
 
 	mobj->z = z;
 	mobj->floorz = floorz;
@@ -3585,7 +3585,7 @@ static thinker_t* LoadMobjThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadNoEnemiesThinker(save_t *save_p, actionf_p1 thinker)
 {
 	noenemies_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	return &ht->thinker;
 }
@@ -3593,7 +3593,7 @@ static thinker_t* LoadNoEnemiesThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadBounceCheeseThinker(save_t *save_p, actionf_p1 thinker)
 {
 	bouncecheese_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->speed = P_ReadFixed(save_p);
@@ -3611,7 +3611,7 @@ static thinker_t* LoadBounceCheeseThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadContinuousFallThinker(save_t *save_p, actionf_p1 thinker)
 {
 	continuousfall_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->speed = P_ReadFixed(save_p);
 	ht->direction = P_ReadINT32(save_p);
@@ -3631,7 +3631,7 @@ static thinker_t* LoadContinuousFallThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadMarioBlockThinker(save_t *save_p, actionf_p1 thinker)
 {
 	mariothink_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->speed = P_ReadFixed(save_p);
 	ht->direction = P_ReadINT32(save_p);
@@ -3651,7 +3651,7 @@ static thinker_t* LoadMarioBlockThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadMarioCheckThinker(save_t *save_p, actionf_p1 thinker)
 {
 	mariocheck_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	return &ht->thinker;
@@ -3660,7 +3660,7 @@ static thinker_t* LoadMarioCheckThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadThwompThinker(save_t *save_p, actionf_p1 thinker)
 {
 	thwomp_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->crushspeed = P_ReadFixed(save_p);
@@ -3684,7 +3684,7 @@ static thinker_t* LoadThwompThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadFloatThinker(save_t *save_p, actionf_p1 thinker)
 {
 	floatthink_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->tag = P_ReadINT16(save_p);
@@ -3695,7 +3695,7 @@ static thinker_t* LoadEachTimeThinker(save_t *save_p, actionf_p1 thinker)
 {
 	size_t i;
 	eachtime_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	for (i = 0; i < MAXPLAYERS; i++)
 	{
@@ -3708,7 +3708,7 @@ static thinker_t* LoadEachTimeThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadRaiseThinker(save_t *save_p, actionf_p1 thinker)
 {
 	raise_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->tag = P_ReadINT16(save_p);
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->ceilingbottom = P_ReadFixed(save_p);
@@ -3723,7 +3723,7 @@ static thinker_t* LoadRaiseThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadCeilingThinker(save_t *save_p, actionf_p1 thinker)
 {
 	ceiling_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->type = P_ReadUINT8(save_p);
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->bottomheight = P_ReadFixed(save_p);
@@ -3745,7 +3745,7 @@ static thinker_t* LoadCeilingThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadFloormoveThinker(save_t *save_p, actionf_p1 thinker)
 {
 	floormove_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->type = P_ReadUINT8(save_p);
 	ht->crush = P_ReadUINT8(save_p);
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
@@ -3766,7 +3766,7 @@ static thinker_t* LoadFloormoveThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadLightflashThinker(save_t *save_p, actionf_p1 thinker)
 {
 	lightflash_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->maxlight = P_ReadINT32(save_p);
 	ht->minlight = P_ReadINT32(save_p);
@@ -3778,7 +3778,7 @@ static thinker_t* LoadLightflashThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadStrobeThinker(save_t *save_p, actionf_p1 thinker)
 {
 	strobe_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->count = P_ReadINT32(save_p);
 	ht->minlight = P_ReadINT16(save_p);
@@ -3793,7 +3793,7 @@ static thinker_t* LoadStrobeThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadGlowThinker(save_t *save_p, actionf_p1 thinker)
 {
 	glow_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->minlight = P_ReadINT16(save_p);
 	ht->maxlight = P_ReadINT16(save_p);
@@ -3807,7 +3807,7 @@ static thinker_t* LoadGlowThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadFireflickerThinker(save_t *save_p, actionf_p1 thinker)
 {
 	fireflicker_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->count = P_ReadINT32(save_p);
 	ht->resetcount = P_ReadINT32(save_p);
@@ -3821,7 +3821,7 @@ static thinker_t* LoadFireflickerThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadElevatorThinker(save_t *save_p, actionf_p1 thinker, boolean setplanedata)
 {
 	elevator_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->type = P_ReadUINT8(save_p);
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->actionsector = LoadSector(P_ReadUINT32(save_p));
@@ -3851,7 +3851,7 @@ static thinker_t* LoadElevatorThinker(save_t *save_p, actionf_p1 thinker, boolea
 static thinker_t* LoadCrumbleThinker(save_t *save_p, actionf_p1 thinker)
 {
 	crumble_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->actionsector = LoadSector(P_ReadUINT32(save_p));
@@ -3873,7 +3873,7 @@ static thinker_t* LoadCrumbleThinker(save_t *save_p, actionf_p1 thinker)
 static thinker_t* LoadScrollThinker(save_t *save_p, actionf_p1 thinker)
 {
 	scroll_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->dx = P_ReadFixed(save_p);
 	ht->dy = P_ReadFixed(save_p);
 	ht->affectee = P_ReadINT32(save_p);
@@ -3890,7 +3890,7 @@ static thinker_t* LoadScrollThinker(save_t *save_p, actionf_p1 thinker)
 FUNCINLINE static ATTRINLINE thinker_t *LoadFrictionThinker(save_t *save_p, actionf_p1 thinker)
 {
 	friction_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->friction = P_ReadINT32(save_p);
 	ht->movefactor = P_ReadINT32(save_p);
 	ht->affectee = P_ReadINT32(save_p);
@@ -3902,7 +3902,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadFrictionThinker(save_t *save_p, acti
 static thinker_t* LoadPusherThinker(save_t *save_p, actionf_p1 thinker)
 {
 	pusher_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->type = P_ReadUINT8(save_p);
 	ht->x_mag = P_ReadFixed(save_p);
 	ht->y_mag = P_ReadFixed(save_p);
@@ -3918,7 +3918,7 @@ static thinker_t* LoadPusherThinker(save_t *save_p, actionf_p1 thinker)
 FUNCINLINE static ATTRINLINE thinker_t *LoadLaserThinker(save_t *save_p, actionf_p1 thinker)
 {
 	laserthink_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->tag = P_ReadINT16(save_p);
 	ht->sourceline = LoadLine(P_ReadUINT32(save_p));
 	ht->nobosses = P_ReadUINT8(save_p);
@@ -3928,7 +3928,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadLaserThinker(save_t *save_p, actionf
 FUNCINLINE static ATTRINLINE thinker_t *LoadLightlevelThinker(save_t *save_p, actionf_p1 thinker)
 {
 	lightlevel_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->sourcelevel = P_ReadINT16(save_p);
 	ht->destlevel = P_ReadINT16(save_p);
@@ -3943,7 +3943,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadLightlevelThinker(save_t *save_p, ac
 FUNCINLINE static ATTRINLINE thinker_t *LoadExecutorThinker(save_t *save_p, actionf_p1 thinker)
 {
 	executor_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->line = LoadLine(P_ReadUINT32(save_p));
 	ht->caller = LoadMobj(P_ReadUINT32(save_p));
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
@@ -3954,7 +3954,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadExecutorThinker(save_t *save_p, acti
 FUNCINLINE static ATTRINLINE thinker_t *LoadDisappearThinker(save_t *save_p, actionf_p1 thinker)
 {
 	disappear_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->appeartime = P_ReadUINT32(save_p);
 	ht->disappeartime = P_ReadUINT32(save_p);
 	ht->offset = P_ReadUINT32(save_p);
@@ -3969,7 +3969,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadFadeThinker(save_t *save_p, actionf_
 {
 	sector_t *ss;
 	fade_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->dest_exc = GetNetColormapFromList(P_ReadUINT32(save_p));
 	ht->sectornum = P_ReadUINT32(save_p);
 	ht->ffloornum = P_ReadUINT32(save_p);
@@ -3978,7 +3978,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadFadeThinker(save_t *save_p, actionf_
 	ht->destvalue = P_ReadINT16(save_p);
 	ht->destlightlevel = P_ReadINT16(save_p);
 	ht->speed = P_ReadINT16(save_p);
-	ht->ticbased = (boolean)P_ReadUINT8(save_p);
+	ht->ticbased = P_ReadUINT8(save_p);
 	ht->timer = P_ReadINT32(save_p);
 	ht->doexists = P_ReadUINT8(save_p);
 	ht->dotranslucent = P_ReadUINT8(save_p);
@@ -4010,11 +4010,11 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadFadeThinker(save_t *save_p, actionf_
 FUNCINLINE static ATTRINLINE thinker_t *LoadFadeColormapThinker(save_t *save_p, actionf_p1 thinker)
 {
 	fadecolormap_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->sector = LoadSector(P_ReadUINT32(save_p));
 	ht->source_exc = GetNetColormapFromList(P_ReadUINT32(save_p));
 	ht->dest_exc = GetNetColormapFromList(P_ReadUINT32(save_p));
-	ht->ticbased = (boolean)P_ReadUINT8(save_p);
+	ht->ticbased = P_ReadUINT8(save_p);
 	ht->duration = P_ReadINT32(save_p);
 	ht->timer = P_ReadINT32(save_p);
 	if (ht->sector)
@@ -4025,7 +4025,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadFadeColormapThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadPlaneDisplaceThinker(save_t *save_p, actionf_p1 thinker)
 {
 	planedisplace_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 
 	ht->affectee = P_ReadINT32(save_p);
 	ht->control = P_ReadINT32(save_p);
@@ -4038,7 +4038,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPlaneDisplaceThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadDynamicLineSlopeThinker(save_t *save_p, actionf_p1 thinker)
 {
 	dynlineplanethink_t* ht = Z_Malloc(sizeof(*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 
 	ht->type = P_ReadUINT8(save_p);
 	ht->slope = LoadSlope(P_ReadUINT32(save_p));
@@ -4051,7 +4051,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadDynamicVertexSlopeThinker(save_t *sa
 {
 	size_t i;
 	dynvertexplanethink_t* ht = Z_Malloc(sizeof(*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 
 	ht->slope = LoadSlope(P_ReadUINT32(save_p));
 	for (i = 0; i < 3; i++)
@@ -4066,7 +4066,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadDynamicVertexSlopeThinker(save_t *sa
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolyrotatetThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polyrotate_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->speed = P_ReadINT32(save_p);
 	ht->distance = P_ReadINT32(save_p);
@@ -4077,7 +4077,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolyrotatetThinker(save_t *save_p, a
 static thinker_t* LoadPolymoveThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polymove_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->speed = P_ReadINT32(save_p);
 	ht->momx = P_ReadFixed(save_p);
@@ -4090,7 +4090,7 @@ static thinker_t* LoadPolymoveThinker(save_t *save_p, actionf_p1 thinker)
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolywaypointThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polywaypoint_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->speed = P_ReadINT32(save_p);
 	ht->sequence = P_ReadINT32(save_p);
@@ -4105,7 +4105,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolywaypointThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolyslidedoorThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polyslidedoor_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->delay = P_ReadINT32(save_p);
 	ht->delayCount = P_ReadINT32(save_p);
@@ -4125,7 +4125,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolyslidedoorThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolyswingdoorThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polyswingdoor_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->delay = P_ReadINT32(save_p);
 	ht->delayCount = P_ReadINT32(save_p);
@@ -4140,7 +4140,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolyswingdoorThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolydisplaceThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polydisplace_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->controlSector = LoadSector(P_ReadUINT32(save_p));
 	ht->dx = P_ReadFixed(save_p);
@@ -4152,7 +4152,7 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolydisplaceThinker(save_t *save_p,
 FUNCINLINE static ATTRINLINE thinker_t *LoadPolyrotdisplaceThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polyrotdisplace_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->controlSector = LoadSector(P_ReadUINT32(save_p));
 	ht->rotscale = P_ReadFixed(save_p);
@@ -4164,13 +4164,13 @@ FUNCINLINE static ATTRINLINE thinker_t *LoadPolyrotdisplaceThinker(save_t *save_
 static thinker_t* LoadPolyfadeThinker(save_t *save_p, actionf_p1 thinker)
 {
 	polyfade_t *ht = Z_Malloc(sizeof (*ht), PU_LEVSPEC, NULL);
-	ht->thinker.function.acp1 = thinker;
+	ht->thinker.function = thinker;
 	ht->polyObjNum = P_ReadINT32(save_p);
 	ht->sourcevalue = P_ReadINT32(save_p);
 	ht->destvalue = P_ReadINT32(save_p);
-	ht->docollision = (boolean)P_ReadUINT8(save_p);
-	ht->doghostfade = (boolean)P_ReadUINT8(save_p);
-	ht->ticbased = (boolean)P_ReadUINT8(save_p);
+	ht->docollision = P_ReadUINT8(save_p);
+	ht->doghostfade = P_ReadUINT8(save_p);
+	ht->ticbased = P_ReadUINT8(save_p);
 	ht->duration = P_ReadINT32(save_p);
 	ht->timer = P_ReadINT32(save_p);
 	return &ht->thinker;
@@ -4196,7 +4196,7 @@ static void P_NetUnArchiveThinkers(save_t *save_p)
 		{
 			next = currentthinker->next;
 
-			if (currentthinker->function.acp1 == (actionf_p1)P_MobjThinker || currentthinker->function.acp1 == (actionf_p1)P_NullPrecipThinker)
+			if (currentthinker->function == (actionf_p1)P_MobjThinker || currentthinker->function == (actionf_p1)P_NullPrecipThinker)
 				P_RemoveSavegameMobj((mobj_t *)currentthinker); // item isn't saved, don't remove it
 			else
 			{
@@ -4415,7 +4415,7 @@ static void P_NetUnArchiveThinkers(save_t *save_p)
 		UINT32 mobjnum;
 		for (currentthinker = thlist[THINK_MAIN].next; currentthinker != &thlist[THINK_MAIN]; currentthinker = currentthinker->next)
 		{
-			if (currentthinker->function.acp1 != (actionf_p1)T_ExecutorDelay)
+			if (currentthinker->function != (actionf_p1)T_ExecutorDelay)
 				continue;
 			delay = (void *)currentthinker;
 			if (!(mobjnum = (UINT32)(size_t)delay->caller))
@@ -4949,7 +4949,7 @@ FUNCINLINE static ATTRINLINE boolean P_NetUnArchiveMisc(save_t *save_p, boolean
 	gravity = P_ReadFixed(save_p);
 
 	countdowntimer = (tic_t)P_ReadUINT32(save_p);
-	countdowntimeup = (boolean)P_ReadUINT8(save_p);
+	countdowntimeup = P_ReadUINT8(save_p);
 
 	hidetime = P_ReadUINT32(save_p);
 
@@ -5101,7 +5101,7 @@ FUNCINLINE static ATTRINLINE void P_NetUnArchiveEmblems(save_t *save_p)
 	if (P_ReadUINT32(save_p) != ARCHIVEBLOCK_EMBLEMS)
 		I_Error("Bad $$$.sav at archive block Emblems");
 
-	savemoddata = (boolean)P_ReadUINT8(save_p); // this one is actually necessary because savemoddata stays false otherwise for some reason.
+	savemoddata = P_ReadUINT8(save_p); // this one is actually necessary because savemoddata stays false otherwise for some reason.
 
 	if (numemblems != P_ReadINT32(save_p))
 		I_Error("Bad $$$.sav dearchiving Emblems (numemblems mismatch)");
diff --git a/src/p_slopes.c b/src/p_slopes.c
index 7390329369..1acc77506c 100644
--- a/src/p_slopes.c
+++ b/src/p_slopes.c
@@ -248,7 +248,7 @@ void T_DynamicSlopeVert (dynvertexplanethink_t* th)
 static inline void P_AddDynLineSlopeThinker (pslope_t* slope, dynplanetype_t type, line_t* sourceline, fixed_t extent)
 {
 	dynlineplanethink_t* th = Z_Calloc(sizeof (*th), PU_LEVSPEC, NULL);
-	th->thinker.function.acp1 = (actionf_p1)T_DynamicSlopeLine;
+	th->thinker.function = (actionf_p1)T_DynamicSlopeLine;
 	th->slope = slope;
 	th->type = type;
 	th->sourceline = sourceline;
@@ -264,7 +264,7 @@ static inline void P_AddDynVertexSlopeThinker (pslope_t* slope, const INT16 tags
 	dynvertexplanethink_t* th = Z_Calloc(sizeof (*th), PU_LEVSPEC, NULL);
 	size_t i;
 	INT32 l;
-	th->thinker.function.acp1 = (actionf_p1)T_DynamicSlopeVert;
+	th->thinker.function = (actionf_p1)T_DynamicSlopeVert;
 	th->slope = slope;
 
 	for (i = 0; i < 3; i++) {
diff --git a/src/p_spec.c b/src/p_spec.c
index 93809cbb4b..29fe1d5d84 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -1042,7 +1042,7 @@ static boolean PolyFade(line_t *line)
 	// Prevent continuous execs from interfering on an existing fade
 	if (!(line->args[3] & TMPF_OVERRIDE)
 		&& po->thinker
-		&& po->thinker->function.acp1 == (actionf_p1)T_PolyObjFade)
+		&& po->thinker->function == (actionf_p1)T_PolyObjFade)
 	{
 		CONS_Debug(DBG_POLYOBJ, "Line type 492 Executor: Fade PolyObject thinker already exists\n");
 		return 0;
@@ -1273,7 +1273,7 @@ static void P_AddExecutorDelay(line_t *line, mobj_t *mobj, sector_t *sector)
 
 	e = Z_Calloc(sizeof (*e), PU_LEVSPEC, NULL);
 
-	e->thinker.function.acp1 = (actionf_p1)T_ExecutorDelay;
+	e->thinker.function = (actionf_p1)T_ExecutorDelay;
 	e->line = line;
 	e->sector = sector;
 	e->timer = delay;
@@ -2033,7 +2033,7 @@ void P_SwitchWeather(INT32 weathernum)
 
 		for (think = thlist[THINK_PRECIP].next; think != &thlist[THINK_PRECIP]; think = think->next)
 		{
-			if (think->function.acp1 != (actionf_p1)P_NullPrecipThinker)
+			if (think->function != (actionf_p1)P_NullPrecipThinker)
 				continue; // not a precipmobj thinker
 
 			precipmobj = (precipmobj_t *)think;
@@ -2049,7 +2049,7 @@ void P_SwitchWeather(INT32 weathernum)
 
 		for (think = thlist[THINK_PRECIP].next; think != &thlist[THINK_PRECIP]; think = think->next)
 		{
-			if (think->function.acp1 != (actionf_p1)P_NullPrecipThinker)
+			if (think->function != (actionf_p1)P_NullPrecipThinker)
 				continue; // not a precipmobj thinker
 			precipmobj = (precipmobj_t *)think;
 
@@ -2066,7 +2066,7 @@ void P_SwitchWeather(INT32 weathernum)
 				precipmobj->precipflags &= ~PCF_INVISIBLE;
 
 				precipmobj->precipflags |= PCF_RAIN;
-				//think->function.acp1 = (actionf_p1)P_RainThinker;
+				//think->function = (actionf_p1)P_RainThinker;
 			}
 			else if (weathernum == PRECIP_SNOW) // Rain To Snow
 			{
@@ -2091,11 +2091,11 @@ void P_SwitchWeather(INT32 weathernum)
 
 				precipmobj->precipflags &= ~(PCF_INVISIBLE|PCF_RAIN);
 
-				//think->function.acp1 = (actionf_p1)P_SnowThinker;
+				//think->function = (actionf_p1)P_SnowThinker;
 			}
 			else // Remove precip, but keep it around for reuse.
 			{
-				//think->function.acp1 = (actionf_p1)P_NullPrecipThinker;
+				//think->function = (actionf_p1)P_NullPrecipThinker;
 
 				precipmobj->precipflags |= PCF_INVISIBLE;
 			}
@@ -2759,7 +2759,7 @@ static void P_ProcessLineSpecial(line_t *line, mobj_t *mo, sector_t *callsec)
 
 				for (th = thlist[THINK_MAIN].next; th != &thlist[THINK_MAIN]; th = th->next)
 				{
-					if (th->function.acp1 != (actionf_p1)T_Scroll)
+					if (th->function != (actionf_p1)T_Scroll)
 						continue;
 
 					scroller = (scroll_t *)th;
@@ -5561,7 +5561,7 @@ static ffloor_t *P_AddFakeFloor(sector_t *sec, sector_t *sec2, line_t *master, I
 			break;
 
 		// Should this FOF have friction?
-		if(th->function.acp1 == (actionf_p1)T_Friction)
+		if(th->function == (actionf_p1)T_Friction)
 		{
 			f = (friction_t *)th;
 
@@ -5569,7 +5569,7 @@ static ffloor_t *P_AddFakeFloor(sector_t *sec, sector_t *sec2, line_t *master, I
 				Add_Friction(f->friction, f->movefactor, (INT32)(sec-sectors), f->affectee);
 		}
 		// Should this FOF have wind/current/pusher?
-		else if(th->function.acp1 == (actionf_p1)T_Pusher)
+		else if(th->function == (actionf_p1)T_Pusher)
 		{
 			p = (pusher_t *)th;
 
@@ -5656,7 +5656,7 @@ static void P_AddFloatThinker(sector_t *sec, UINT16 tag, line_t *sourceline)
 	floater = Z_Calloc(sizeof (*floater), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &floater->thinker);
 
-	floater->thinker.function.acp1 = (actionf_p1)T_FloatSector;
+	floater->thinker.function = (actionf_p1)T_FloatSector;
 
 	floater->sector = sec;
 	floater->tag = (INT16)tag;
@@ -5687,7 +5687,7 @@ static void P_AddPlaneDisplaceThinker(INT32 type, fixed_t speed, INT32 control,
 	displace = Z_Calloc(sizeof (*displace), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &displace->thinker);
 
-	displace->thinker.function.acp1 = (actionf_p1)T_PlaneDisplace;
+	displace->thinker.function = (actionf_p1)T_PlaneDisplace;
 	displace->affectee = affectee;
 	displace->control = control;
 	displace->last_height = sectors[control].floorheight;
@@ -5717,7 +5717,7 @@ static void P_AddBlockThinker(sector_t *sec, line_t *sourceline)
 	block = Z_Calloc(sizeof (*block), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &block->thinker);
 
-	block->thinker.function.acp1 = (actionf_p1)T_MarioBlockChecker;
+	block->thinker.function = (actionf_p1)T_MarioBlockChecker;
 	block->sourceline = sourceline;
 
 	block->sector = sec;
@@ -5742,7 +5742,7 @@ static void P_AddRaiseThinker(sector_t *sec, INT16 tag, fixed_t speed, fixed_t c
 	raise = Z_Calloc(sizeof (*raise), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &raise->thinker);
 
-	raise->thinker.function.acp1 = (actionf_p1)T_RaiseSector;
+	raise->thinker.function = (actionf_p1)T_RaiseSector;
 
 	raise->tag = tag;
 	raise->sector = sec;
@@ -5769,7 +5769,7 @@ static void P_AddAirbob(sector_t *sec, INT16 tag, fixed_t dist, boolean raise, b
 	airbob = Z_Calloc(sizeof (*airbob), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &airbob->thinker);
 
-	airbob->thinker.function.acp1 = (actionf_p1)T_RaiseSector;
+	airbob->thinker.function = (actionf_p1)T_RaiseSector;
 
 	airbob->tag = tag;
 	airbob->sector = sec;
@@ -5811,7 +5811,7 @@ static inline void P_AddThwompThinker(sector_t *sec, line_t *sourceline, fixed_t
 	thwomp = Z_Calloc(sizeof (*thwomp), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &thwomp->thinker);
 
-	thwomp->thinker.function.acp1 = (actionf_p1)T_ThwompSector;
+	thwomp->thinker.function = (actionf_p1)T_ThwompSector;
 
 	// set up the fields according to the type of elevator action
 	thwomp->sourceline = sourceline;
@@ -5850,7 +5850,7 @@ static inline void P_AddNoEnemiesThinker(line_t *sourceline)
 	nobaddies = Z_Calloc(sizeof (*nobaddies), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &nobaddies->thinker);
 
-	nobaddies->thinker.function.acp1 = (actionf_p1)T_NoEnemiesSector;
+	nobaddies->thinker.function = (actionf_p1)T_NoEnemiesSector;
 
 	nobaddies->sourceline = sourceline;
 }
@@ -5870,7 +5870,7 @@ static void P_AddEachTimeThinker(line_t *sourceline, boolean triggerOnExit)
 	eachtime = Z_Calloc(sizeof (*eachtime), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &eachtime->thinker);
 
-	eachtime->thinker.function.acp1 = (actionf_p1)T_EachTimeThinker;
+	eachtime->thinker.function = (actionf_p1)T_EachTimeThinker;
 
 	eachtime->sourceline = sourceline;
 	eachtime->triggerOnExit = triggerOnExit;
@@ -5892,7 +5892,7 @@ static inline void P_AddCameraScanner(sector_t *sourcesec, sector_t *actionsecto
 	elevator = Z_Calloc(sizeof (*elevator), PU_LEVSPEC, NULL);
 	P_AddThinker(THINK_MAIN, &elevator->thinker);
 
-	elevator->thinker.function.acp1 = (actionf_p1)T_CameraScanner;
+	elevator->thinker.function = (actionf_p1)T_CameraScanner;
 	elevator->type = elevateBounce;
 
 	// set up the fields according to the type of elevator action
@@ -5976,7 +5976,7 @@ static inline void P_AddLaserThinker(INT16 tag, line_t *line, boolean nobosses)
 
 	P_AddThinker(THINK_MAIN, &flash->thinker);
 
-	flash->thinker.function.acp1 = (actionf_p1)T_LaserFlash;
+	flash->thinker.function = (actionf_p1)T_LaserFlash;
 	flash->tag = tag;
 	flash->sourceline = line;
 	flash->nobosses = nobosses;
@@ -6377,9 +6377,9 @@ void P_SpawnSpecials(boolean fromnetsave)
 	// Firstly, find out how many there are in each sector
 	for (th = thlist[THINK_MAIN].next; th != &thlist[THINK_MAIN]; th = th->next)
 	{
-		if (th->function.acp1 == (actionf_p1)T_Friction)
+		if (th->function == (actionf_p1)T_Friction)
 			secthinkers[((friction_t *)th)->affectee].count++;
-		else if (th->function.acp1 == (actionf_p1)T_Pusher)
+		else if (th->function == (actionf_p1)T_Pusher)
 			secthinkers[((pusher_t *)th)->affectee].count++;
 	}
 
@@ -6397,9 +6397,9 @@ void P_SpawnSpecials(boolean fromnetsave)
 	{
 		size_t secnum = (size_t)-1;
 
-		if (th->function.acp1 == (actionf_p1)T_Friction)
+		if (th->function == (actionf_p1)T_Friction)
 			secnum = ((friction_t *)th)->affectee;
-		else if (th->function.acp1 == (actionf_p1)T_Pusher)
+		else if (th->function == (actionf_p1)T_Pusher)
 			secnum = ((pusher_t *)th)->affectee;
 
 		if (secnum != (size_t)-1)
@@ -7761,7 +7761,7 @@ static boolean IsSector3DBlock(sector_t* sec)
 static void Add_Scroller(INT32 type, fixed_t dx, fixed_t dy, INT32 control, INT32 affectee, INT32 accel, INT32 exclusive)
 {
 	scroll_t *s = Z_Calloc(sizeof *s, PU_LEVSPEC, NULL);
-	s->thinker.function.acp1 = (actionf_p1)T_Scroll;
+	s->thinker.function = (actionf_p1)T_Scroll;
 	s->type = type;
 	s->dx = dx;
 	s->dy = dy;
@@ -7903,7 +7903,7 @@ static void Add_MasterDisappearer(tic_t appeartime, tic_t disappeartime, tic_t o
 {
 	disappear_t *d = Z_Malloc(sizeof *d, PU_LEVSPEC, NULL);
 
-	d->thinker.function.acp1 = (actionf_p1)T_Disappear;
+	d->thinker.function = (actionf_p1)T_Disappear;
 	d->appeartime = appeartime;
 	d->disappeartime = disappeartime;
 	d->offset = offset;
@@ -8296,7 +8296,7 @@ static void P_AddFakeFloorFader(ffloor_t *rover, size_t sectornum, size_t ffloor
 
 	d = Z_Malloc(sizeof *d, PU_LEVSPEC, NULL);
 
-	d->thinker.function.acp1 = (actionf_p1)T_Fade;
+	d->thinker.function = (actionf_p1)T_Fade;
 	d->rover = rover;
 	d->sectornum = (UINT32)sectornum;
 	d->ffloornum = (UINT32)ffloornum;
@@ -8448,7 +8448,7 @@ static void Add_ColormapFader(sector_t *sector, extracolormap_t *source_exc, ext
 	}
 
 	d = Z_Malloc(sizeof *d, PU_LEVSPEC, NULL);
-	d->thinker.function.acp1 = (actionf_p1)T_FadeColormap;
+	d->thinker.function = (actionf_p1)T_FadeColormap;
 	d->sector = sector;
 	d->source_exc = source_exc;
 	d->dest_exc = dest_exc;
@@ -8572,7 +8572,7 @@ static void Add_Friction(INT32 friction, INT32 movefactor, INT32 affectee, INT32
 {
 	friction_t *f = Z_Calloc(sizeof *f, PU_LEVSPEC, NULL);
 
-	f->thinker.function.acp1 = (actionf_p1)T_Friction;
+	f->thinker.function = (actionf_p1)T_Friction;
 	f->friction = friction;
 	f->movefactor = movefactor;
 	f->affectee = affectee;
@@ -8710,7 +8710,7 @@ static void Add_Pusher(pushertype_e type, fixed_t x_mag, fixed_t y_mag, fixed_t
 {
 	pusher_t *p = Z_Calloc(sizeof *p, PU_LEVSPEC, NULL);
 
-	p->thinker.function.acp1 = (actionf_p1)T_Pusher;
+	p->thinker.function = (actionf_p1)T_Pusher;
 	p->type = type;
 	p->x_mag = x_mag;
 	p->y_mag = y_mag;
diff --git a/src/p_tick.c b/src/p_tick.c
index db8688484a..194b8c0a1d 100644
--- a/src/p_tick.c
+++ b/src/p_tick.c
@@ -124,7 +124,7 @@ void Command_Numthinkers_f(void)
 	{
 		for (think = thlist[i].next; think != &thlist[i]; think = think->next)
 		{
-			if (think->function.acp1 != action)
+			if (think->function != action)
 				continue;
 
 			count++;
@@ -228,7 +228,7 @@ void P_AddThinker(const thinklistnum_t n, thinker_t *thinker)
 static const char *MobjTypeName(const mobj_t *mobj)
 {
 	mobjtype_t type;
-	actionf_p1 p1 = mobj->thinker.function.acp1;
+	actionf_p1 p1 = mobj->thinker.function;
 
 	if (p1 == (actionf_p1)P_MobjThinker)
 		type = mobj->type;
@@ -247,7 +247,7 @@ static const char *MobjTypeName(const mobj_t *mobj)
 
 static const char *MobjThinkerName(const mobj_t *mobj)
 {
-	actionf_p1 p1 = mobj->thinker.function.acp1;
+	actionf_p1 p1 = mobj->thinker.function;
 
 	if (p1 == (actionf_p1)P_MobjThinker)
 	{
@@ -349,7 +349,7 @@ void P_RemoveThinker(thinker_t *thinker)
 {
 	LUA_InvalidateUserdata(thinker);
 	thinker->removing = true;
-	thinker->function.acp1 = (actionf_p1)P_RemoveThinkerDelayed;
+	thinker->function = (actionf_p1)P_RemoveThinkerDelayed;
 }
 
 /*
@@ -437,9 +437,9 @@ static inline void P_RunThinkers(void)
 		for (currentthinker = thlist[i].next; currentthinker != &thlist[i]; currentthinker = currentthinker->next)
 		{
 #ifdef PARANOIA
-			I_Assert(currentthinker->function.acp1 != NULL);
+			I_Assert(currentthinker->function != NULL);
 #endif
-			currentthinker->function.acp1(currentthinker);
+			currentthinker->function(currentthinker);
 		}
 		PS_STOP_TIMING(ps_thlist_times[i]);
 	}
diff --git a/src/p_user.c b/src/p_user.c
index 7cc9c02ae7..19a51c116f 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -3657,7 +3657,7 @@ static void P_DoClimbing(player_t *player)
 
 			for (think = thlist[THINK_MAIN].next; think != &thlist[THINK_MAIN]; think = think->next)
 			{
-				if (think->function.acp1 != (actionf_p1)T_Scroll)
+				if (think->function != (actionf_p1)T_Scroll)
 					continue;
 
 				scroller = (scroll_t *)think;
diff --git a/src/r_data.c b/src/r_data.c
index 32faa07a8f..846a77def1 100644
--- a/src/r_data.c
+++ b/src/r_data.c
@@ -1272,7 +1272,7 @@ void R_PrecacheLevel(void)
 	if (spritepresent == NULL) I_Error("%s: Out of memory looking up sprites", "R_PrecacheLevel");
 
 	for (th = thlist[THINK_MOBJ].next; th != &thlist[THINK_MOBJ]; th = th->next)
-		if (th->function.acp1 != (actionf_p1)P_RemoveThinkerDelayed)
+		if (th->function != (actionf_p1)P_RemoveThinkerDelayed)
 			spritepresent[((mobj_t *)th)->sprite] = 1;
 
 	spritememory = 0;
diff --git a/src/s_sound.c b/src/s_sound.c
index 0329c289ee..077560ec52 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -2227,7 +2227,8 @@ static boolean S_CheckQueue(void)
 
 static void S_ClearQueue(void)
 {
-	queue_name[0] = queue_flags = queue_looping = queue_position = queue_fadeinms = 0;
+	queue_name[0] = queue_flags = queue_position = queue_fadeinms = 0;
+	queue_looping = false;
 }
 
 static void S_ChangeMusicToQueue(void)
