diff --git a/bin/Mingw/Debug/.gitignore b/bin/Mingw/Debug/.gitignore
index 834f313e3eae612617885430c8071e6e41483d88..3458ff7648f27c14076ff2aee101446a323f5a04 100644
--- a/bin/Mingw/Debug/.gitignore
+++ b/bin/Mingw/Debug/.gitignore
@@ -1,3 +1,4 @@
 *.exe
 *.mo
 r_opengl.dll
+*.bat
diff --git a/src/dehacked.c b/src/dehacked.c
index d6d8b413417e937934caa54687b5d7f710c1d3d6..3eb64bd052e7a52cc17093fc3655613e97c923ba 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -6397,6 +6397,16 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
 	"S_SLOWBOOM9",
 	"S_SLOWBOOM10",
 
+	// Ballhog
+	"S_BALLHOG1",
+	"S_BALLHOG2",
+	"S_BALLHOG3",
+	"S_BALLHOG4",
+	"S_BALLHOG5",
+	"S_BALLHOG6",
+	"S_BALLHOG7",
+	"S_BALLHOG8",
+
 	// Self-Propelled Bomb - just an explosion for now...
 	"S_BLUELIGHTNING1",
 	"S_BLUELIGHTNING2",
@@ -7124,7 +7134,6 @@ static const char *const MOBJTYPE_LIST[] = {  // array length left dynamic for s
 
 	"MT_GREENSHIELD", // Orbinaut stuff
 	"MT_GREENITEM",
-	"MT_FIRETRAIL",
 
 	"MT_JAWZ", // Jawz stuff
 	"MT_JAWZ_DUD",
@@ -7558,9 +7567,7 @@ static const char *const KARTSTUFF_LIST[] = {
 	"VOICES",
 	"TAUNTVOICES",
 
-	"BOOSTING",
 	"FLOORBOOST",
-	"SPINOUT",
 	"SPINOUTTYPE",
 
 	"DRIFT",
@@ -7576,10 +7583,12 @@ static const char *const KARTSTUFF_LIST[] = {
 	"ITEMROULETTE",
 	"ROULETTETYPE",
 
+	// Item held stuff
 	"ITEMTYPE",
 	"ITEMAMOUNT",
 	"ITEMHELD",
 
+	// Some items use timers for their duration or effects
 	"ATTRACTIONTIMER",
 	"HYUDOROTIMER",
 	"STEALINGTIMER",
@@ -7593,10 +7602,10 @@ static const char *const KARTSTUFF_LIST[] = {
 	"EGGMANHELD",
 	"SPINOUTTIMER",
 	"JUSTBUMPED",
-	"POWERITEMTIMER",
 	"COMEBACKTIMER",
 	"SADTIMER",
 
+	// Battle Mode vars
 	"BALLOON",
 	"COMEBACKPOINTS",
 	"COMEBACKMODE",
diff --git a/src/k_kart.c b/src/k_kart.c
index 28b7dad4013db9c9996a6025fa65cacd97a67e99..a1f326988e840cef2751d106151d19b81b904f6b 100644
--- a/src/k_kart.c
+++ b/src/k_kart.c
@@ -5070,7 +5070,9 @@ static void K_drawKartFirstPerson(void)
 			x /= 2;
 	}
 
-	if (stplyr->speed < FixedMul(stplyr->runspeed, stplyr->mo->scale) && (leveltime & 1))
+	if (stplyr->spectator || !stplyr->mo)
+		splitflags |= FF_TRANS50;
+	else if (stplyr->speed < FixedMul(stplyr->runspeed, stplyr->mo->scale) && (leveltime & 1))
 		y++;
 
 	if (cmd->driftturn > 400) // strong left turn