diff --git a/src/command.c b/src/command.c
index 1b925b7b8e0394e36b7d8c48533c9a4d7e49b043..413acdabe828a3ce0156cc686f2c37804eb5f7fe 100644
--- a/src/command.c
+++ b/src/command.c
@@ -96,9 +96,9 @@ CV_PossibleValue_t dummykartspeed_cons_t[] = {
 	{0, NULL}
 };
 CV_PossibleValue_t gpdifficulty_cons_t[] = {
-	{KARTSPEED_EASY, "Easy"},
-	{KARTSPEED_NORMAL, "Normal"},
-	{KARTSPEED_HARD, "Hard"},
+	{KARTSPEED_EASY, "Relaxed"},
+	{KARTSPEED_NORMAL, "Intense"},
+	{KARTSPEED_HARD, "Extreme"},
 	{KARTGP_MASTER, "Master"},
 	{0, NULL}
 };
diff --git a/src/cvars.cpp b/src/cvars.cpp
index 85085e14739497919ddf91870cdda9b2e2906da0..6a29bc26c646e7458798011b2d02cf624b863fde 100644
--- a/src/cvars.cpp
+++ b/src/cvars.cpp
@@ -943,7 +943,7 @@ consvar_t cv_dummyextraspassword = MenuDummy("dummyextraspassword", "");
 
 extern CV_PossibleValue_t gpdifficulty_cons_t[];
 void Dummygpdifficulty_OnChange(void);
-consvar_t cv_dummygpdifficulty = MenuDummy("dummygpdifficulty", "Normal").values(gpdifficulty_cons_t).onchange(Dummygpdifficulty_OnChange);
+consvar_t cv_dummygpdifficulty = MenuDummy("dummygpdifficulty", "Relaxed").values(gpdifficulty_cons_t).onchange(Dummygpdifficulty_OnChange);
 consvar_t cv_dummygpencore = MenuDummy("dummygpencore", "Off").on_off();
 
 consvar_t cv_dummyip = MenuDummy("dummyip", "");
diff --git a/src/k_menudraw.c b/src/k_menudraw.c
index a6f4880b7e11221b1b531173c3881488a07f052a..03c98ddba12bc31558080261c4b2cc8d4ad69806 100644
--- a/src/k_menudraw.c
+++ b/src/k_menudraw.c
@@ -5689,10 +5689,10 @@ static char *M_GetGameplayMode(void)
 		if (grandprixinfo.masterbots)
 			return va("Master");
 		if (grandprixinfo.gamespeed == KARTSPEED_HARD)
-			return va("Hard");
+			return va("Extreme");
 		if (grandprixinfo.gamespeed == KARTSPEED_NORMAL)
-			return va("Normal");
-		return va("Easy");
+			return va("Intense");
+		return va("Relaxed");
 	}
 
 	if (cv_4thgear.value)
diff --git a/src/m_cond.c b/src/m_cond.c
index 9ed6fa04bb1ee73cde415c38ee5b181f93d91703..81610452863e84125b4e9150f812fcb80cfa941b 100644
--- a/src/m_cond.c
+++ b/src/m_cond.c
@@ -2374,11 +2374,11 @@ static const char *M_GetConditionString(condition_t *cn)
 
 			if (cn->extrainfo2 == KARTSPEED_NORMAL)
 			{
-				speedtext = " on Normal";
+				speedtext = " on Intense";
 			}
 			else if (cn->extrainfo2 == KARTSPEED_HARD)
 			{
-				speedtext = " on Hard";
+				speedtext = " on Extreme";
 			}
 			else if (cn->extrainfo2 == KARTGP_MASTER)
 			{
@@ -2424,7 +2424,7 @@ static const char *M_GetConditionString(condition_t *cn)
 			else*/
 			if (cn->requirement == KARTSPEED_HARD)
 			{
-				speedtext = " on Hard";
+				speedtext = " on Extreme";
 			}
 			else if (cn->requirement == KARTGP_MASTER)
 			{
@@ -2686,11 +2686,11 @@ static const char *M_GetConditionString(condition_t *cn)
 
 			if (cn->requirement == KARTSPEED_NORMAL)
 			{
-				speedtext = "on Normal";
+				speedtext = "on Intense";
 			}
 			else if (cn->requirement == KARTSPEED_HARD)
 			{
-				speedtext = "on Hard";
+				speedtext = "on Extreme";
 			}
 			else if (cn->requirement == KARTGP_MASTER)
 			{
diff --git a/src/menus/play-local-race-difficulty.c b/src/menus/play-local-race-difficulty.c
index 98028deb5762e1eee35fe739b132758fef224c64..c27366eb7e3d51f739c67154ed261079b487d011 100644
--- a/src/menus/play-local-race-difficulty.c
+++ b/src/menus/play-local-race-difficulty.c
@@ -15,6 +15,8 @@
 #include "../s_sound.h"
 #include "../sounds.h"
 
+boolean interceptedDefaultDifficulty = false;
+
 menuitem_t PLAY_RaceDifficulty[] =
 {
 	// For GP
@@ -127,6 +129,14 @@ void M_SetupDifficultyOptions(INT32 choice)
 	PLAY_RaceDifficulty[drace_cupselect].status = IT_DISABLED;
 	PLAY_RaceDifficulty[drace_mapselect].status = IT_DISABLED;
 
+	if (M_SecretUnlocked(SECRET_HARDSPEED, true) && !interceptedDefaultDifficulty)
+	{
+		CV_SetValue(&cv_dummygpdifficulty, KARTSPEED_NORMAL);
+		CV_SetValue(&cv_dummykartspeed, KARTSPEED_NORMAL);
+	}
+
+	interceptedDefaultDifficulty = true;
+
 	if (choice)		// Match Race
 	{
 		PLAY_RaceDifficulty[drace_mrkartspeed].status = IT_STRING|IT_CVAR; // Kart Speed
@@ -170,13 +180,13 @@ void Dummygpdifficulty_OnChange(void)
 	switch (cv_dummygpdifficulty.value)
 	{
 		case KARTSPEED_EASY:
-			tooltip = "Warm up to the track with some\x83 Gear 1\x80 practice. For\x83 beginners.";
+			tooltip = "Low-stakes racing at \x83Gear 1""\x80"". Take a drive and \x83""enjoy the sights!";
 			break;
 		case KARTSPEED_NORMAL:
-			tooltip = "Push to the top in\x82 Gear 2\x80. A balanced challenge for\x82 everyone!";
+			tooltip = "Aim for the prize at\x82 Gear 2\x80. Can you \x82surpass your limits?";
 			break;
 		case KARTSPEED_HARD:
-			tooltip = "Challenge tough competition at\x87 Gear 3\x80. For\x87 thrill-seekers!";
+			tooltip = "Challenge fierce competition at\x87 Gear 3\x80. For\x87 thrill-seekers!";
 			break;
 		case KARTGP_MASTER:
 			tooltip = "Let's go crazy! Take on brutal CPUs at\x87 Gear 3\x80: for\x85 lunatics only!";