diff --git a/src/dehacked.c b/src/dehacked.c
index 967b57eb5da0ac873447e8feaefb2eab8ab7b036..8057f26d8eccd24485bc1f21de404e99bf6ae7bb 100644
--- a/src/dehacked.c
+++ b/src/dehacked.c
@@ -1163,11 +1163,14 @@ static void readlevelheader(MYFILE *f, INT32 num)
 				mapheaderinfo[num-1]->mustrack = ((UINT16)i - 1);
 			else if (fastcmp(word, "MUSICPOS"))
 				mapheaderinfo[num-1]->muspos = (UINT32)get_number(word2);
+			else if (fastcmp(word, "MUSICINTERFADEOUT"))
+				mapheaderinfo[num-1]->musinterfadeout = (UINT32)get_number(word2);
 			else if (fastcmp(word, "MUSICINTER"))
 				deh_strlcpy(mapheaderinfo[num-1]->musintername, word2,
 					sizeof(mapheaderinfo[num-1]->musintername), va("Level header %d: intermission music", num));
 			else if (fastcmp(word, "FORCECHARACTER"))
 			{
+				strlcpy(mapheaderinfo[num-1]->forcecharacter, word2, SKINNAMESIZE+1);
 				strlwr(mapheaderinfo[num-1]->forcecharacter); // skin names are lowercase
 			}
 			else if (fastcmp(word, "WEATHER"))
diff --git a/src/dummy/i_sound.c b/src/dummy/i_sound.c
index db531ecdb6c4283b54c1903eabef71ca7483be97..f09158e013639c8a506058a0eaa7b1259d1285c6 100644
--- a/src/dummy/i_sound.c
+++ b/src/dummy/i_sound.c
@@ -145,13 +145,13 @@ void I_UnloadSong(void)
 boolean I_PlaySong(boolean looping)
 {
 	(void)handle;
+	(void)looping;
+	return false;
 }
 
 void I_StopSong(void)
 {
 	(void)handle;
-	(void)looping;
-	return false;
 }
 
 void I_PauseSong(void)
diff --git a/src/m_menu.c b/src/m_menu.c
index 922e5448b157c744e3772ee084960599064689e1..847cdb1a193bb7ffb4c613c6dcb08ed6e750840c 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -1305,15 +1305,15 @@ static menuitem_t OP_SoundOptionsMenu[] =
 	{IT_STRING | IT_CVAR,  NULL,  "MIDI Music", &cv_gamemidimusic, 73}, // 36
 	{IT_STRING | IT_CVAR | IT_CV_SLIDER, NULL, "MIDI Music Volume", &cv_midimusicvolume, 83}, // 41
 
-	{IT_HEADER, NULL, "Advanced", NULL, 103}, // 50
+	{IT_HEADER, NULL, "Accessibility", NULL, 103}, // 50
 	{IT_STRING | IT_CVAR, NULL, "Closed Captioning", &cv_closedcaptioning, 115}, // 56
 
 #ifdef HAVE_OPENMPT
 	{IT_HEADER, NULL, "OpenMPT Settings", NULL, 133},
-	{IT_STRING | IT_CVAR, NULL, "Instrument Filter", &cv_modfilter, 145}
+	{IT_STRING | IT_CVAR, NULL, "Instrument Filter", &cv_modfilter, 145},
 #endif
 #ifdef HAVE_MIXERX
-	{IT_STRING 	  | IT_SUBMENU, NULL, "Advanced Settings...", &OP_SoundAdvancedDef, 163},
+	{IT_STRING | IT_SUBMENU, NULL, "Advanced Settings...", &OP_SoundAdvancedDef, 163},
 #endif
 };
 
@@ -1914,7 +1914,7 @@ menu_t OP_SoundOptionsDef =
 	NULL
 };
 #ifdef HAVE_MIXERX
-menu_t OP_SoundAdvancedDef = DEFAULTMENUSTYLE("M_SOUND", OP_SoundAdvancedMenu, &OP_SoundOptionsDef, 30, 30);
+menu_t OP_SoundAdvancedDef = DEFAULTMENUSTYLE(MN_OP_MAIN + (MN_OP_SOUND << 6), "M_SOUND", OP_SoundAdvancedMenu, &OP_SoundOptionsDef, 30, 30);
 #endif
 
 menu_t OP_ServerOptionsDef = DEFAULTSCROLLMENUSTYLE(
diff --git a/src/s_sound.c b/src/s_sound.c
index f81819f7edbfb1e5984b9affa460028e15b27eff..52131548f9369d8bee84d43ef39af9ac6f944ae5 100644
--- a/src/s_sound.c
+++ b/src/s_sound.c
@@ -118,13 +118,6 @@ static CV_PossibleValue_t interpolationfilter_cons_t[] = {{0, "Default"}, {1, "N
 consvar_t cv_modfilter = {"modfilter", "0", CV_SAVE|CV_CALL, interpolationfilter_cons_t, ModFilter_OnChange, 0, NULL, NULL, 0, 0, NULL};
 #endif
 
-#ifdef HAVE_MIXERX
-static CV_PossibleValue_t midiplayer_cons_t[] = {{MIDI_OPNMIDI, "OPNMIDI"}, {MIDI_Fluidsynth, "Fluidsynth"}, {MIDI_Timidity, "Timidity"}, {MIDI_Native, "Native"}, {0, NULL}};
-consvar_t cv_midiplayer = {"midiplayer", "OPNMIDI" /*MIDI_OPNMIDI*/, CV_CALL|CV_NOINIT|CV_SAVE, midiplayer_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
-consvar_t cv_midisoundfontpath = {"midisoundfont", "sf2/8bit.sf2", CV_CALL|CV_NOINIT|CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
-consvar_t cv_miditimiditypath = {"midisoundbank", "./timidity", CV_SAVE, NULL, NULL, 0, NULL, NULL, 0, 0, NULL};
-#endif
-
 #define S_MAX_VOLUME 127
 
 // when to clip out sounds
diff --git a/src/sdl/mixer_sound.c b/src/sdl/mixer_sound.c
index 6c5ff0d41df240fd90cb6006bb2b3cc5ce143902..fb9de45797a9b7d704cf33277618b32e7c45ce0c 100644
--- a/src/sdl/mixer_sound.c
+++ b/src/sdl/mixer_sound.c
@@ -1100,7 +1100,6 @@ boolean I_LoadSong(char *data, size_t len)
 	const char *key1 = "LOOP";
 	const char *key2 = "POINT=";
 	const char *key3 = "MS=";
-	const char *key4 = "LENGTHMS=";
 	const size_t key1len = strlen(key1);
 	const size_t key2len = strlen(key2);
 	const size_t key3len = strlen(key3);