diff --git a/src/r_picformats.c b/src/r_picformats.c
index 5e90353591a4fcf1a63573437697efe3b986eaed..94452e20e8a2e660cf228142e4afe945cb40ac77 100644
--- a/src/r_picformats.c
+++ b/src/r_picformats.c
@@ -1583,6 +1583,8 @@ static void R_ParseSpriteInfoFrame(struct ParseSpriteInfoState *parser, boolean
 	UINT16 frameID = 0;
 	UINT16 frameEndID = UINT16_MAX;
 
+	boolean usingDeprecatedPivot = false;
+
 	struct ParsedSpriteInfoFrame frame = {
 		.pivotX = INT32_MAX,
 		.pivotY = INT32_MAX
@@ -1673,17 +1675,33 @@ static void R_ParseSpriteInfoFrame(struct ParseSpriteInfoState *parser, boolean
 			}
 			while (strcmp(sprinfoToken,"}")!=0)
 			{
-				if (stricmp(sprinfoToken, "XPIVOT")==0)
+				if (stricmp(sprinfoToken, "ROTATIONXPIVOT")==0)
+				{
+					Z_Free(sprinfoToken);
+					sprinfoToken = M_GetToken(NULL);
+					frame.pivotX = atoi(sprinfoToken);
+				}
+				else if (stricmp(sprinfoToken, "ROTATIONYPIVOT")==0)
+				{
+					Z_Free(sprinfoToken);
+					sprinfoToken = M_GetToken(NULL);
+					frame.pivotY = atoi(sprinfoToken);
+				}
+				// TODO: 2.3: Delete
+				else if (stricmp(sprinfoToken, "XPIVOT")==0)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
 					frame.pivotX = atoi(sprinfoToken);
+					usingDeprecatedPivot = true;
 				}
+				// TODO: 2.3: Delete
 				else if (stricmp(sprinfoToken, "YPIVOT")==0)
 				{
 					Z_Free(sprinfoToken);
 					sprinfoToken = M_GetToken(NULL);
 					frame.pivotY = atoi(sprinfoToken);
+					usingDeprecatedPivot = true;
 				}
 				// TODO: 2.3: Delete
 				else if (stricmp(sprinfoToken, "ROTAXIS")==0)
@@ -1722,6 +1740,13 @@ static void R_ParseSpriteInfoFrame(struct ParseSpriteInfoState *parser, boolean
 		}
 	}
 
+	// TODO: 2.3: Delete
+	if (usingDeprecatedPivot)
+	{
+		parser->info->frames[SPRINFO_DEFAULT_FRAME].pivot.available = true;
+		set_bit_array(parser->info->available, SPRINFO_DEFAULT_FRAME);
+	}
+
 	if (parser->spr2)
 	{
 		INT32 i;