diff --git a/src/dehacked.c b/src/dehacked.c
index 72db4306caa653e8c5bdf8fdb2761d5f35b6e7f9..7878f876f0da3a6b2257a0a05cc6270324c83ad9 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -5834,10 +5834,7 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
 	"S_LAVAFALL_LAVA1",
 	"S_LAVAFALL_LAVA2",
 	"S_LAVAFALL_LAVA3",
-	"S_LAVAFALLROCK1",
-	"S_LAVAFALLROCK2",
-	"S_LAVAFALLROCK3",
-	"S_LAVAFALLROCK4",
+	"S_LAVAFALLROCK",
 
 	// RVZ scenery
 	"S_BIGFERNLEAF",
diff --git a/src/info.c b/src/info.c
index 88e857716609bc0ae01c283d42b59f44c3a5286b..a41547c5d26fe2998e33dcfda2a6f9a0020a8b4a 100644
--- a/src/info.c
+++ b/src/info.c
@@ -2459,15 +2459,12 @@ state_t states[NUMSTATES] =
 
 	// Lavafall
 	{SPR_LFAL, 5, 1, {NULL}, 0, 0, S_LAVAFALL_DORMANT}, // S_LAVAFALL_DORMANT
-	{SPR_LFAL, 6|FF_ANIMATE, 4, {A_LavafallRocks}, 2, 2, S_LAVAFALL_TELL}, // S_LAVAFALL_TELL
-	{SPR_LFAL, 9|FF_FULLBRIGHT|FF_ANIMATE, 2, {A_LavafallLava}, 2, 1, S_LAVAFALL_SHOOT}, // S_LAVAFALL_SHOOT
+	{SPR_LFAL, 6|FF_ANIMATE, 4, {A_LavafallRocks}, 1, 2, S_LAVAFALL_TELL}, // S_LAVAFALL_TELL
+	{SPR_LFAL, 9|FF_FULLBRIGHT|FF_ANIMATE, 2, {A_LavafallLava}, 1, 1, S_LAVAFALL_SHOOT}, // S_LAVAFALL_SHOOT
 	{SPR_LFAL, FF_FULLBRIGHT, 1, {A_FallingLavaCheck}, 0, 0, S_LAVAFALL_LAVA2}, // S_LAVAFALL_LAVA1
 	{SPR_LFAL, FF_FULLBRIGHT, 1, {A_FallingLavaCheck}, 0, 0, S_LAVAFALL_LAVA1}, // S_LAVAFALL_LAVA2
-	{SPR_LFAL, 2|FF_FULLBRIGHT|FF_ANIMATE, 9, {NULL}, 3, 3, S_NULL}, // S_LAVAFALL_LAVA3
-	{SPR_LFAL, 11, 3, {NULL}, 0, 0, S_LAVAFALLROCK2}, // S_LAVAFALLROCK1
-	{SPR_LFAL, 12, 3, {NULL}, 0, 0, S_LAVAFALLROCK3}, // S_LAVAFALLROCK2
-	{SPR_LFAL, 13, 3, {NULL}, 0, 0, S_LAVAFALLROCK4}, // S_LAVAFALLROCK3
-	{SPR_LFAL, 14, 3, {NULL}, 0, 0, S_LAVAFALLROCK1}, // S_LAVAFALLROCK4
+	{SPR_LFAL, 2|FF_FULLBRIGHT|FF_ANIMATE, 9, {NULL}, 2, 3, S_NULL}, // S_LAVAFALL_LAVA3
+	{SPR_LFAL, 11|FF_ANIMATE|FF_RANDOMANIM, 12, {NULL}, 3, 3, S_LAVAFALLROCK}, // S_LAVAFALLROCK
 
 	// RVZ scenery
 	{SPR_JPLA, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_BIGFERNLEAF
@@ -12644,7 +12641,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
 
 	{           // MT_LAVAFALLROCK
 		-1,             // doomednum
-		S_LAVAFALLROCK1, // spawnstate
+		S_LAVAFALLROCK, // spawnstate
 		1000,           // spawnhealth
 		S_NULL,         // seestate
 		sfx_None,       // seesound
diff --git a/src/info.h b/src/info.h
index 0fe200cbd3f389d66bb7073d5383c1cb5850eae6..1a2bb838e1ed91f43d7075bb86ead06410445dcc 100644
--- a/src/info.h
+++ b/src/info.h
@@ -2586,10 +2586,7 @@ typedef enum state
 	S_LAVAFALL_LAVA1,
 	S_LAVAFALL_LAVA2,
 	S_LAVAFALL_LAVA3,
-	S_LAVAFALLROCK1,
-	S_LAVAFALLROCK2,
-	S_LAVAFALLROCK3,
-	S_LAVAFALLROCK4,
+	S_LAVAFALLROCK,
 
 	// RVZ scenery
 	S_BIGFERNLEAF,
diff --git a/src/p_enemy.c b/src/p_enemy.c
index 85dc15ab24928364de552301bf5f3c48e2392ec1..a22e727b751f89d0590a802ab084a94c751c3811 100644
--- a/src/p_enemy.c
+++ b/src/p_enemy.c
@@ -13770,8 +13770,7 @@ void A_LavafallRocks(mobj_t *actor)
 		fixed_t offset = P_RandomRange(4, 12) << FRACBITS;
 		fixed_t xoffs = FixedMul(FINECOSINE(fa), actor->radius + offset);
 		fixed_t yoffs = FixedMul(FINESINE(fa), actor->radius + offset);
-		mobj_t *particle = P_SpawnMobjFromMobj(actor, xoffs, yoffs, 0, MT_LAVAFALLROCK);
-		P_SetMobjState(particle, S_LAVAFALLROCK1 + P_RandomRange(0, 3));
+		P_SpawnMobjFromMobj(actor, xoffs, yoffs, 0, MT_LAVAFALLROCK);
 	}
 }