diff --git a/src/console.c b/src/console.c
index b458e2dc1dafed606d57ad0f655b841946e28977..45993b3bee50e0c4163c80c0fce6fb40bd90c255 100644
--- a/src/console.c
+++ b/src/console.c
@@ -1917,9 +1917,9 @@ static const char *CON_LoadingStrings[LOADED_ALLDONE+1] =
 	"Init zone memory...", //LOADED_ZINIT
 	"Init game timing...", //LOADED_ISTARTUPTIMER
 	"Loading main assets...", //LOADED_IWAD
-	"Loading add-ons...", //LOADED_PWAD
 	"Init graphics subsystem...", //LOADED_ISTARTUPGRAPHICS
 	"Cache fonts...", //LOADED_HUINIT
+	"Loading add-ons...", //LOADED_PWAD
 	"Load settings...", //LOADED_CONFIG
 	"Cache textures...", //LOADED_INITTEXTUREDATA
 	"Cache sprites...", //LOADED_INITSPIRTES
diff --git a/src/console.h b/src/console.h
index 64bdc41af5ac9bf1b3fd4300ae02debb4685faab..e0c1e58e36115320babe647c6f850dbf43a8e302 100644
--- a/src/console.h
+++ b/src/console.h
@@ -42,9 +42,9 @@ typedef enum
 	LOADED_ZINIT = 1,
 	LOADED_ISTARTUPTIMER,
 	LOADED_IWAD,
-	LOADED_PWAD,
 	LOADED_ISTARTUPGRAPHICS,
 	LOADED_HUINIT,
+	LOADED_PWAD,
 	LOADED_CONFIG,
 	LOADED_INITTEXTUREDATA,
 	LOADED_INITSPRITES,
diff --git a/src/d_main.cpp b/src/d_main.cpp
index f45ccbc64653928db7ebab5568beac672c5105ad..0627fbf8fe82b178f94616844b1d40e5e4d0658c 100644
--- a/src/d_main.cpp
+++ b/src/d_main.cpp
@@ -1755,17 +1755,6 @@ void D_SRB2Main(void)
 
 	CON_SetLoadingProgress(LOADED_IWAD);
 
-	CONS_Printf("W_InitMultipleFiles(): Adding external PWADs.\n");
-	W_InitMultipleFiles(startuppwads, true);
-	D_CleanFile(startuppwads);
-
-	//
-	// search for pwad maps
-	//
-	P_InitMapData();
-
-	CON_SetLoadingProgress(LOADED_PWAD);
-
 	M_PasswordInit();
 
 	//---------------------------------------------------- READY SCREEN
@@ -1798,14 +1787,35 @@ void D_SRB2Main(void)
 
 	CON_Init();
 
-	CON_SetLoadingProgress(LOADED_HUINIT);
-
 	D_RegisterServerCommands();
 	D_RegisterClientCommands(); // be sure that this is called before D_CheckNetGame
 	R_RegisterEngineStuff();
 	S_RegisterSoundStuff();
 
 	I_RegisterSysCommands();
+	
+	CON_SetLoadingProgress(LOADED_HUINIT);
+	
+	CONS_Printf("W_InitMultipleFiles(): Adding external PWADs.\n");
+	
+	// HACK: Refer to https://git.do.srb2.org/KartKrew/RingRacers/-/merge_requests/29#note_61574
+	partadd_earliestfile = numwadfiles;
+	W_InitMultipleFiles(startuppwads, true);
+	
+	// Only search for pwad maps and reload graphics if we actually have a pwad added
+	if (startuppwads[0] != NULL)
+	{
+		//
+		// search for pwad maps
+		//
+		P_InitMapData();
+		HU_LoadGraphics();
+	}
+	
+	D_CleanFile(startuppwads);
+	partadd_earliestfile = UINT16_MAX;
+
+	CON_SetLoadingProgress(LOADED_PWAD);
 
 	M_Init();