diff --git a/Marlin/src/lcd/menu/menu_main.cpp b/Marlin/src/lcd/menu/menu_main.cpp
index b3e811e3cd8bc62f8fe95e9aec82ac4edda82bdc..b84000fe90772c61a7cc2a3ce1b618fd9d0585d8 100644
--- a/Marlin/src/lcd/menu/menu_main.cpp
+++ b/Marlin/src/lcd/menu/menu_main.cpp
@@ -35,14 +35,6 @@
 #include "../../module/stepper.h"
 #include "../../sd/cardreader.h"
 
-#if ENABLED(POWER_LOSS_RECOVERY)
-  #include "../../feature/power_loss_recovery.h"
-#endif
-
-#if HAS_GAMES
-  #include "game/game.h"
-#endif
-
 #define MACHINE_CAN_STOP (EITHER(SDSUPPORT, HOST_PROMPT_SUPPORT) || defined(ACTION_ON_CANCEL))
 #define MACHINE_CAN_PAUSE (ANY(SDSUPPORT, HOST_PROMPT_SUPPORT, PARK_HEAD_ON_PAUSE) || defined(ACTION_ON_PAUSE))
 
@@ -60,11 +52,23 @@ void menu_tune();
 void menu_motion();
 void menu_temperature();
 void menu_configuration();
-void menu_user();
-void menu_temp_e0_filament_change();
-void menu_change_filament();
-void menu_info();
-void menu_led();
+
+#if ENABLED(CUSTOM_USER_MENUS)
+  void menu_user();
+#endif
+
+#if ENABLED(ADVANCED_PAUSE_FEATURE)
+  void menu_temp_e0_filament_change();
+  void menu_change_filament();
+#endif
+
+#if ENABLED(LCD_INFO_MENU)
+  void menu_info();
+#endif
+
+#if ENABLED(LED_CONTROL_MENU)
+  void menu_led();
+#endif
 
 #if ENABLED(MIXING_EXTRUDER)
   void menu_mixer();
@@ -82,14 +86,17 @@ void menu_led();
   #endif
 #endif
 
-#if HAS_GAME_MENU
-  void menu_game();
-#elif ENABLED(MARLIN_BRICKOUT)
-  void lcd_goto_brickout();
-#elif ENABLED(MARLIN_INVADERS)
-  void lcd_goto_invaders();
-#elif ENABLED(MARLIN_SNAKE)
-  void lcd_goto_snake();
+#if HAS_GAMES
+  #include "game/game.h"
+  #if HAS_GAME_MENU
+    void menu_game();
+  #elif ENABLED(MARLIN_BRICKOUT)
+    void lcd_goto_brickout();
+  #elif ENABLED(MARLIN_INVADERS)
+    void lcd_goto_invaders();
+  #elif ENABLED(MARLIN_SNAKE)
+    void lcd_goto_snake();
+  #endif
 #endif
 
 void menu_main() {