diff --git a/src/d_netcmd.c b/src/d_netcmd.c
index c7647e0284dbd0043689bf37bcb0461fff27af41..521f3c4207edea691e4628e6cea9d3b9258cfba7 100644
--- a/src/d_netcmd.c
+++ b/src/d_netcmd.c
@@ -787,7 +787,7 @@ void D_RegisterClientCommands(void)
 	CV_RegisterVar(&cv_chatspamprotection);
 	CV_RegisterVar(&cv_consolechat);
 	CV_RegisterVar(&cv_chatnotifications);
-	CV_RegisterVar(&cv_chatbackteint);
+	CV_RegisterVar(&cv_chatbacktint);
 	CV_RegisterVar(&cv_crosshair);
 	CV_RegisterVar(&cv_crosshair2);
 	CV_RegisterVar(&cv_crosshair3);
diff --git a/src/g_game.c b/src/g_game.c
index 7af11dc64cc64dbcf0f6b866651817f28581deb8..4a1c84d3e9fc76a7953622859cb95de803f4ecae 100644
--- a/src/g_game.c
+++ b/src/g_game.c
@@ -422,7 +422,7 @@ consvar_t cv_chatnotifications = {"chatnotifications", "On", CV_SAVE, CV_OnOff,
 consvar_t cv_chatspamprotection = {"chatspamprotection", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
 
 // minichat text background
-consvar_t cv_chatbackteint = {"chatbackteint", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
+consvar_t cv_chatbacktint = {"chatbacktint", "Off", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
 
 // old shit console chat. (mostly exists for stuff like terminal, not because I cared if anyone liked the old chat.)
 //static CV_PossibleValue_t consolechat_cons_t[] = {{0, "Box"}, {1, "Console"}, {0, NULL}}; -- for menu, but menu disabled...
diff --git a/src/g_game.h b/src/g_game.h
index 08ac73f2ed39c54eda0a9029bd9ac660cf555ecb..53c970d2a6ff9462a0be0046d70d19b05620b72a 100644
--- a/src/g_game.h
+++ b/src/g_game.h
@@ -54,7 +54,7 @@ extern tic_t timeinmap; // Ticker for time spent in level (used for levelcard di
 extern INT16 rw_maximums[NUM_WEAPONS];
 
 // used in game menu
-extern consvar_t cv_chatwidth, cv_chatnotifications, cv_chatheight, cv_chattime, cv_consolechat, cv_chatspamprotection, cv_compactscoreboard, cv_chatbackteint;
+extern consvar_t cv_chatwidth, cv_chatnotifications, cv_chatheight, cv_chattime, cv_consolechat, cv_chatspamprotection, cv_compactscoreboard, cv_chatbacktint;
 extern consvar_t cv_crosshair, cv_crosshair2, cv_crosshair3, cv_crosshair4;
 extern consvar_t cv_invertmouse, cv_alwaysfreelook, cv_mousemove;
 extern consvar_t cv_turnaxis,cv_moveaxis,cv_brakeaxis,cv_aimaxis,cv_lookaxis,cv_fireaxis,cv_driftaxis;
diff --git a/src/hu_stuff.c b/src/hu_stuff.c
index 22dc7fc5255495ec7aa9b300b6ba55719fc2182a..d8b6093cc0e29fde72d59a0e3009c88345878e20 100644
--- a/src/hu_stuff.c
+++ b/src/hu_stuff.c
@@ -1341,10 +1341,11 @@ static void HU_drawMiniChat(void)
 			}
 			else
 			{
-				if (cv_chatbackteint.value)	// on request of wolfy
-					V_DrawFillConsoleMap(x + dx + 2, y+dy, charwidth, charheight, 239|V_SNAPTOBOTTOM|V_SNAPTOLEFT);
-				
 				UINT8 *colormap = CHAT_GetStringColormap(clrflag);
+
+				if (cv_chatbacktint.value)	// on request of wolfy
+					V_DrawFillConsoleMap(x + dx + 2, y+dy, charwidth, charheight, 239|V_SNAPTOBOTTOM|V_SNAPTOLEFT);
+
 				V_DrawChatCharacter(x + dx + 2, y+dy, msg[j++] |V_SNAPTOBOTTOM|V_SNAPTOLEFT|transflag, !cv_allcaps.value, colormap);
 			}
 
diff --git a/src/m_menu.c b/src/m_menu.c
index eb5ffb6ccb8ff8d02ffb8d46e69b293bd3c1ada2..7da112b0d9a070ecfdfb983b25985b19ea437aa3 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -339,7 +339,6 @@ static void M_DrawSetupChoosePlayerMenu(void);
 static void M_DrawControl(void);
 static void M_DrawVideoMenu(void);
 static void M_DrawVideoMode(void);
-static void M_DrawHUDOptions(void);
 //static void M_DrawMonitorToggles(void);
 #ifdef HWRENDER
 static void M_OGL_DrawFogMenu(void);
@@ -1246,23 +1245,49 @@ static menuitem_t OP_Mouse2OptionsMenu[] =
 static menuitem_t OP_VideoOptionsMenu[] =
 {
 	{IT_STRING | IT_CALL,	NULL,	"Set Resolution...",	M_VideoModeMenu,		 10},
-#ifdef HWRENDER
-	{IT_SUBMENU|IT_STRING,	NULL,	"OpenGL Options...",	&OP_OpenGLOptionsDef,	 20},
-#endif
 #if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)
-	{IT_STRING|IT_CVAR,		NULL,	"Fullscreen",			&cv_fullscreen,			 30},
+	{IT_STRING|IT_CVAR,		NULL,	"Fullscreen",			&cv_fullscreen,			 20},
 #endif
 	{IT_STRING | IT_CVAR | IT_CV_SLIDER,
-							NULL,	"Gamma",				&cv_usegamma,			 50},
+							NULL,	"Gamma",				&cv_usegamma,			 30},
+
+	{IT_STRING | IT_CVAR,	NULL,	"Menu Highlights",		&cons_menuhighlight,     45},
+	// highlight info - (GOOD HIGHLIGHT, WARNING HIGHLIGHT) - 55 (see M_DrawVideoMenu)
 
 	{IT_STRING | IT_CVAR,	NULL,	"Draw Distance",		&cv_drawdist,			 70},
 	//{IT_STRING | IT_CVAR,	NULL,	"NiGHTS Draw Dist",		&cv_drawdist_nights,	 80},
-	{IT_STRING | IT_CVAR,	NULL,	"Weather Draw Dist.",	&cv_drawdist_precip,	 80},
+	{IT_STRING | IT_CVAR,	NULL,	"Weather Draw Distance",&cv_drawdist_precip,	 80},
 	{IT_STRING | IT_CVAR,	NULL,	"Weather Density",		&cv_precipdensity,		 90},
 	{IT_STRING | IT_CVAR,	NULL,	"Skyboxes",				&cv_skybox,				100},
 
-	{IT_STRING | IT_CVAR,	NULL,	"Show FPS",				&cv_ticrate,			120},
-	{IT_STRING | IT_CVAR,	NULL,	"Vertical Sync",		&cv_vidwait,			130},
+	{IT_STRING | IT_CVAR,	NULL,	"Show FPS",				&cv_ticrate,			115},
+	{IT_STRING | IT_CVAR,	NULL,	"Vertical Sync",		&cv_vidwait,			125},
+
+	{IT_STRING | IT_CVAR,	NULL,	"Console Text Size",	&cv_constextsize,		140},
+
+#ifdef HWRENDER
+	{IT_SUBMENU|IT_STRING,	NULL,	"OpenGL Options...",	&OP_OpenGLOptionsDef,	155},
+#endif
+};
+
+enum
+{
+	op_video_res = 0,
+#if (defined (__unix__) && !defined (MSDOS)) || defined (UNIXCOMMON) || defined (HAVE_SDL)
+	op_video_fullscreen,
+#endif
+	op_video_gamma,
+	op_video_hili,
+	op_video_dd,
+	op_video_wdd,
+	op_video_wd,
+	op_video_skybox,
+	op_video_fps,
+	op_video_vsync,
+	op_video_consoletext,
+#ifdef HWRENDER
+	op_video_ogl,
+#endif
 };
 
 static menuitem_t OP_VideoModeMenu[] =
@@ -1403,19 +1428,14 @@ static menuitem_t OP_HUDOptionsMenu[] =
 	{IT_STRING | IT_CVAR, NULL, "Speedometer Display",		&cv_kartspeedometer,	 45},
 	{IT_STRING | IT_CVAR, NULL, "Show \"CHECK\"",			&cv_kartcheck,			 55},
 
-	{IT_STRING | IT_CVAR, NULL, "Menu Highlights",			&cons_menuhighlight,     70},
-	// highlight info - (GOOD HIGHLIGHT, WARNING HIGHLIGHT) - 80 (see M_DrawHUDOptions)
-
-	//{IT_STRING | IT_CVAR, NULL, "Chat mode",				&cv_consolechat,		 95}, -- will ANYONE who doesn't know how to use the console want to touch this
+	//{IT_STRING | IT_CVAR, NULL, "Chat mode",				&cv_consolechat,		 70}, -- will ANYONE who doesn't know how to use the console want to touch this
 	{IT_STRING | IT_CVAR | IT_CV_SLIDER,
-	                      NULL, "Chat box width",			&cv_chatwidth,		 	 95},
+	                      NULL, "Chat box width",			&cv_chatwidth,		 	 70},
 	{IT_STRING | IT_CVAR | IT_CV_SLIDER,
-	                      NULL, "Chat box height",			&cv_chatheight,		 	105},
-	{IT_STRING | IT_CVAR, NULL, "Chat fadeout time",		&cv_chattime,			115},
-	{IT_STRING | IT_CVAR, NULL, "Chat background teint",	&cv_chatbackteint,		125},
-
-	{IT_STRING | IT_CVAR, NULL, "Background Color",			&cons_backcolor,		140},
-	{IT_STRING | IT_CVAR, NULL, "Console Text Size",		&cv_constextsize,		150},
+	                      NULL, "Chat box height",			&cv_chatheight,		 	 80},
+	{IT_STRING | IT_CVAR, NULL, "Chat fadeout time",		&cv_chattime,			 90},
+	{IT_STRING | IT_CVAR, NULL, "Show tint behind messages",&cv_chatbacktint,		100},
+	{IT_STRING | IT_CVAR, NULL, "Background Color",			&cons_backcolor,		110},
 };
 
 static menuitem_t OP_GameOptionsMenu[] =
@@ -1445,8 +1465,8 @@ static menuitem_t OP_ServerOptionsMenu[] =
 #endif
 
 	{IT_STRING | IT_CVAR,    NULL, "Intermission Timer",			&cv_inttime,			 40},
-	{IT_STRING | IT_CVAR,    NULL, "Voting Timer",					&cv_votetime,			 50},
-	{IT_STRING | IT_CVAR,    NULL, "Advance to Next Level",			&cv_advancemap,			 60},
+	{IT_STRING | IT_CVAR,    NULL, "Map Progression",				&cv_advancemap,			 50},
+	{IT_STRING | IT_CVAR,    NULL, "Voting Timer",					&cv_votetime,			 60},
 
 #ifndef NONET
 	{IT_STRING | IT_CVAR,    NULL, "Max Player Count",				&cv_maxplayers,			 80},
@@ -1454,7 +1474,7 @@ static menuitem_t OP_ServerOptionsMenu[] =
 	//{IT_STRING | IT_CVAR,    NULL, "Join on Map Change",			&cv_joinnextround,		100},
 
 	{IT_STRING | IT_CVAR,    NULL, "Allow WAD Downloading",			&cv_downloading,		100},
-	{IT_STRING | IT_CVAR,    NULL, "Attempts to Resynch",			&cv_resynchattempts,	110},
+	{IT_STRING | IT_CVAR,    NULL, "Attempts to resynchronise",		&cv_resynchattempts,	110},
 #endif
 };
 
@@ -1886,7 +1906,7 @@ menu_t OP_VideoOptionsDef =
 	&OP_MainDef,
 	OP_VideoOptionsMenu,
 	M_DrawVideoMenu,
-	60, 30,
+	30, 30,
 	0,
 	NULL
 };
@@ -1910,7 +1930,7 @@ menu_t OP_SoundOptionsDef =
 	&OP_MainDef,
 	OP_SoundOptionsMenu,
 	M_DrawSkyRoom,
-	60, 30,
+	30, 30,
 	0,
 	NULL
 };
@@ -1921,7 +1941,7 @@ menu_t OP_HUDOptionsDef =
 	sizeof (OP_HUDOptionsMenu)/sizeof (menuitem_t),
 	&OP_MainDef,
 	OP_HUDOptionsMenu,
-	M_DrawHUDOptions,
+	M_DrawGenericMenu, //M_DrawHUDOptions,
 	30, 30,
 	0,
 	NULL
@@ -3060,7 +3080,7 @@ void M_Init(void)
 #ifdef HWRENDER
 	// Permanently hide some options based on render mode
 	if (rendermode == render_soft)
-		OP_VideoOptionsMenu[1].status = IT_DISABLED;
+		OP_VideoOptionsMenu[op_video_ogl].status = IT_DISABLED;
 #endif
 
 #ifndef NONET
@@ -8216,8 +8236,25 @@ static void M_VideoModeMenu(INT32 choice)
 
 static void M_DrawVideoMenu(void)
 {
+	const char *str0 = ")";
+	const char *str1 = " Warning highlight";
+	const char *str2 = ",";
+	const char *str3 = "Good highlight";
+	INT32 x = BASEVIDWIDTH - currentMenu->x + 2, y = currentMenu->y + 55;
+	INT32 w0 = V_StringWidth(str0, 0), w1 = V_StringWidth(str1, 0), w2 = V_StringWidth(str2, 0), w3 = V_StringWidth(str3, 0);
 
 	M_DrawGenericMenu();
+
+	x -= w0;
+	V_DrawString(x, y, highlightflags, str0);
+	x -= w1;
+	V_DrawString(x, y, warningflags, str1);
+	x -= w2;
+	V_DrawString(x, y, highlightflags, str2);
+	x -= w3;
+	V_DrawString(x, y, recommendedflags, str3);
+	V_DrawRightAlignedString(x, y, highlightflags, "(");
+
 	V_DrawRightAlignedString(BASEVIDWIDTH - currentMenu->x, currentMenu->y + OP_VideoOptionsMenu[0].alphaKey,
 		(SCR_IsAspectCorrect(vid.width, vid.height) ? recommendedflags : highlightflags),
 			va("%dx%d", vid.width, vid.height));
@@ -8368,26 +8405,6 @@ static void M_HandleVideoMode(INT32 ch)
 	}
 }
 
-static void M_DrawHUDOptions(void)
-{
-	const char *str0 = ")";
-	const char *str1 = " Warning highlight";
-	const char *str2 = ",";
-	const char *str3 = "Good highlight";
-	INT32 x = BASEVIDWIDTH - currentMenu->x + 2, y = currentMenu->y + 80;
-	INT32 w0 = V_StringWidth(str0, 0), w1 = V_StringWidth(str1, 0), w2 = V_StringWidth(str2, 0), w3 = V_StringWidth(str3, 0);
-	M_DrawGenericMenu();
-	x -= w0;
-	V_DrawString(x, y, highlightflags, str0);
-	x -= w1;
-	V_DrawString(x, y, warningflags, str1);
-	x -= w2;
-	V_DrawString(x, y, highlightflags, str2);
-	x -= w3;
-	V_DrawString(x, y, recommendedflags, str3);
-	V_DrawRightAlignedString(x, y, highlightflags, "(");
-}
-
 // ===============
 // Monitor Toggles
 // ===============