diff --git a/src/p_floor.c b/src/p_floor.c
index 9191d514ee102675a244210709816b30905be863..118b4bdbc7c11f7030380dd0472bcf74ecba5b5b 100644
--- a/src/p_floor.c
+++ b/src/p_floor.c
@@ -1862,8 +1862,8 @@ void EV_CrumbleChain(sector_t *sec, ffloor_t *rover)
 	}
 
 	leftmostvertex = rightmostvertex = topmostvertex = bottommostvertex = 0;
-	widthfactor = heightfactor = mapobjectscale;
-	spacing = (32*mapobjectscale);
+	widthfactor = heightfactor = FRACUNIT;
+	spacing = (32<<FRACBITS);
 	type = MT_ROCKCRUMBLE1;
 	lifetime = 3*TICRATE;
 	fromcenter = false;
diff --git a/src/p_mobj.c b/src/p_mobj.c
index 2fd4c8136d787f57180bad985d323e135283ffe3..20e1acf7ecdc0dd07868b985befbcfddb1e13ff1 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -10683,17 +10683,16 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type, ...)
 	mobj->scale = FRACUNIT;
 	mobj->destscale = mobj->scale;
 	mobj->scalespeed = FRACUNIT/12;
+	
+	// TODO: Make this a special map header
+	if ((maptol & TOL_ERZ3) && !(mobj->type == MT_BLACKEGGMAN))
+		mobj->destscale = FRACUNIT/2;
 
-	if (mapobjectscale != FRACUNIT) //&& !(mobj->type == MT_BLACKEGGMAN)
+	if ((mapobjectscale != FRACUNIT) && !(maptol & TOL_ERZ3))
 	{
 		mobj->destscale = mapobjectscale;
 		mobj->scalespeed = mapobjectscale/12;
 	}
-	
-	// TODO: Make this a special map header
-	if ((maptol & TOL_ERZ3) && !(mobj->type == MT_BLACKEGGMAN))
-		mobj->destscale /= 2;
-
 	// Sprite rendering
 	mobj->blendmode = AST_TRANSLUCENT;
 	mobj->alpha = FRACUNIT;