diff --git a/src/p_mobj.c b/src/p_mobj.c
index a8599ceb5dc93d0e8cd07944d5b31803d8ae7ec1..107a568183ad71210a0a6d2b3730cad2325e66da 100644
--- a/src/p_mobj.c
+++ b/src/p_mobj.c
@@ -12643,10 +12643,16 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
 		break;
 	}
 	case MT_SKYBOX:
+		if (mthing->tag < 0 || mthing->tag > 15)
+		{
+			CONS_Debug(DBG_GAMELOGIC, "P_SetupSpawnedMapThing: Skybox ID %d of mapthing %s is not between 0 and 15!\n", mthing->tag, sizeu1((size_t)(mthing - mapthings)));
+			break;
+		}
+
 		if (mthing->options & MTF_OBJECTSPECIAL)
-			skyboxcenterpnts[mthing->extrainfo] = mobj;
+			skyboxcenterpnts[mthing->tag % 16] = mobj;
 		else
-			skyboxviewpnts[mthing->extrainfo] = mobj;
+			skyboxviewpnts[mthing->tag % 16] = mobj;
 		break;
 	case MT_EGGSTATUE:
 		if (mthing->options & MTF_EXTRA)
diff --git a/src/p_setup.c b/src/p_setup.c
index d79bd328acc03e3c9e71ad532a46a61f7c1e15e9..75923051b2bb86d62fbc042a22d2e1a95dc9b5fc 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -2781,6 +2781,9 @@ static void P_ConvertBinaryMap(void)
 		case 762:
 			mapthings[i].tag = mapthings[i].angle;
 			break;
+		case 780:
+			mapthings[i].tag = mapthings[i].extrainfo;
+			break;
 		default:
 			break;
 		}