diff --git a/src/p_inter.c b/src/p_inter.c
index 6f3685d6..68124671 100644
--- a/src/p_inter.c
+++ b/src/p_inter.c
@@ -694,7 +694,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck)
 					if (!playeringame[i] || players[i].spectator)
 						continue;
 
-					players[i].exiting = (14*TICRATE)/5 + 1;
+					players[i].exiting = (21*TICRATE)/5 + 1;
 				}
 				S_StartSound(NULL, sfx_lvpass);
 			}
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 93fd864f..38149f91 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -1410,7 +1410,7 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
 					gravityadd = FixedMul(gravityadd, 5*FRACUNIT); // Double gravity
 					break;
 				case MT_SIGN:
-					gravityadd /= 3;
+					gravityadd /= 4;
 					break;
 				default:
 					break;
diff --git a/src/p_spec.c b/src/p_spec.c
index e32deb7f..fc22c6bf 100644
--- a/src/p_spec.c
+++ b/src/p_spec.c
@@ -3229,7 +3229,7 @@ void P_SetupSignExit(player_t *player)
 
 		// SRB2Kart: Set sign spinning variables
 		thing->movefactor = thing->z;
-		thing->z += (512<<FRACBITS) * P_MobjFlip(thing);
+		thing->z += (640<<FRACBITS) * P_MobjFlip(thing);
 		thing->movecount = 1;
 
 		++numfound;
@@ -3259,7 +3259,7 @@ void P_SetupSignExit(player_t *player)
 
 		// SRB2Kart: Set sign spinning variables
 		thing->movefactor = thing->z;
-		thing->z += (512<<FRACBITS) * P_MobjFlip(thing);
+		thing->z += (640<<FRACBITS) * P_MobjFlip(thing);
 		thing->movecount = 1;
 
 		++numfound;
@@ -3271,7 +3271,7 @@ void P_SetupSignExit(player_t *player)
 	// SRB2Kart: FINALLY, add in an alternative if no place is found
 	if (player->mo)
 	{
-		mobj_t *sign = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + (512<<FRACBITS), MT_SIGN);
+		mobj_t *sign = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z + (640<<FRACBITS), MT_SIGN);
 
 		P_SetTarget(&sign->target, player->mo);
 		P_SetMobjState(sign, S_SIGN1);
diff --git a/src/p_tick.c b/src/p_tick.c
index b9aaccf7..4cfba90f 100644
--- a/src/p_tick.c
+++ b/src/p_tick.c
@@ -448,7 +448,7 @@ static inline void P_DoSpecialStageStuff(void)
 		{
 			if (playeringame[i])
 			{
-				players[i].exiting = (14*TICRATE)/5 + 1;
+				players[i].exiting = (21*TICRATE)/5 + 1;
 				players[i].pflags &= ~PF_GLIDING;
 			}
 
@@ -485,7 +485,7 @@ static inline void P_DoSpecialStageStuff(void)
 				if (playeringame[i])
 				{
 					players[i].mo->momx = players[i].mo->momy = 0;
-					players[i].exiting = (14*TICRATE)/5 + 1;
+					players[i].exiting = (21*TICRATE)/5 + 1;
 				}
 
 			sstimer = 0;
diff --git a/src/p_user.c b/src/p_user.c
index f499b7ec..3120351c 100644
--- a/src/p_user.c
+++ b/src/p_user.c
@@ -673,7 +673,7 @@ static void P_DeNightserizePlayer(player_t *player)
 		for (i = 0; i < MAXPLAYERS; i++)
 			if (playeringame[i] && players[i].pflags & PF_NIGHTSMODE)
 				players[i].nightstime = 1; // force everyone else to fall too.
-		player->exiting = 3*TICRATE;
+		player->exiting = 6*TICRATE;
 		stagefailed = true; // NIGHT OVER
 	}
 
@@ -1741,7 +1741,7 @@ void P_DoPlayerExit(player_t *player)
 				S_StartSound(player->mo, sfx_kwin);
 		}
 
-		player->exiting = 3*TICRATE;
+		player->exiting = 6*TICRATE;
 
 		if (cv_inttime.value > 0)
 			P_EndingMusic(player);
@@ -1751,7 +1751,7 @@ void P_DoPlayerExit(player_t *player)
 			//countdown2 = countdown + 8*TICRATE;
 
 		if (P_CheckRacers())
-			player->exiting = (14*TICRATE)/5 + 1;
+			player->exiting = (21*TICRATE)/5 + 1;
 	}
 	else if (G_BattleGametype()) // Battle Mode exiting
 	{
@@ -1759,7 +1759,7 @@ void P_DoPlayerExit(player_t *player)
 		P_EndingMusic(player);
 	}
 	else
-		player->exiting = (14*TICRATE)/5 + 2; // Accidental death safeguard???
+		player->exiting = (21*TICRATE)/5 + 2; // Accidental death safeguard???
 
 	//player->pflags &= ~PF_GLIDING;
 	/*	// SRB2kart - don't need
@@ -6569,7 +6569,7 @@ static void P_MovePlayer(player_t *player)
 					S_StartSound(NULL, sfx_s3k6a);
 				for (i = 0; i < MAXPLAYERS; i++)
 					if (playeringame[i])
-						players[i].exiting = (14*TICRATE)/5 + 1;
+						players[i].exiting = (21*TICRATE)/5 + 1;
 			}
 			else if (player->health > 1)
 				P_DamageMobj(player->mo, NULL, NULL, 1);
@@ -9037,8 +9037,8 @@ void P_PlayerThink(player_t *player)
 				}
 			}
 
-			if (i == MAXPLAYERS && player->exiting == 3*TICRATE) // finished
-				player->exiting = (14*TICRATE)/5 + 1;
+			if (i == MAXPLAYERS && player->exiting == 6*TICRATE) // finished
+				player->exiting = (21*TICRATE)/5 + 1;
 
 			// If 10 seconds are left on the timer,
 			// begin the drown music for countdown!
@@ -9063,7 +9063,7 @@ void P_PlayerThink(player_t *player)
 
 		// If it is set, start subtracting
 		// Don't allow it to go back to 0
-		if (player->exiting > 1 && (player->exiting < 3*TICRATE || !G_RaceGametype())) // SRB2kart - "&& player->exiting > 1"
+		if (player->exiting > 1 && (player->exiting < 6*TICRATE || !G_RaceGametype())) // SRB2kart - "&& player->exiting > 1"
 			player->exiting--;
 
 		if (player->exiting && countdown2)