--- a/net/minecraft/server/ReloadableServerResources.java
+++ b/net/minecraft/server/ReloadableServerResources.java
@@ -21,7 +_,7 @@
     private static final Logger LOGGER = LogUtils.getLogger();
     private static final CompletableFuture<Unit> DATA_RELOAD_INITIAL_TASK = CompletableFuture.completedFuture(Unit.INSTANCE);
     private final ReloadableServerRegistries.Holder fullRegistryHolder;
-    private final Commands commands;
+    public Commands commands;
     private final RecipeManager recipes;
     private final ServerAdvancementManager advancements;
     private final ServerFunctionLibrary functionLibrary;
@@ -38,7 +_,9 @@
         this.fullRegistryHolder = new ReloadableServerRegistries.Holder(registryAccess.compositeAccess());
         this.postponedTags = postponedTags;
         this.recipes = new RecipeManager(registries);
-        this.commands = new Commands(commandSelection, CommandBuildContext.simple(registries, enabledFeatures));
+        this.commands = new Commands(commandSelection, CommandBuildContext.simple(registries, enabledFeatures), true); // Paper - Brigadier Command API - use modern alias registration
+        io.papermc.paper.command.brigadier.PaperCommands.INSTANCE.setDispatcher(this.commands, CommandBuildContext.simple(registries, enabledFeatures)); // Paper - Brigadier Command API
+        io.papermc.paper.command.PaperCommands.registerCommands(); // Paper
         this.advancements = new ServerAdvancementManager(registries);
         this.functionLibrary = new ServerFunctionLibrary(functionCompilationLevel, this.commands.getDispatcher());
     }
@@ -83,6 +_,14 @@
                     ReloadableServerResources reloadableServerResources = new ReloadableServerResources(
                         loadResult.layers(), loadResult.lookupWithUpdatedTags(), enabledFeatures, commandSelection, postponedTags, functionCompilationLevel
                     );
+                    // Paper start - call commands event for bootstraps
+                    //noinspection ConstantValue
+                    io.papermc.paper.plugin.lifecycle.event.LifecycleEventRunner.INSTANCE.callReloadableRegistrarEvent(
+                        io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents.COMMANDS,
+                        io.papermc.paper.command.brigadier.PaperCommands.INSTANCE,
+                        io.papermc.paper.plugin.bootstrap.BootstrapContext.class,
+                        MinecraftServer.getServer() == null ? io.papermc.paper.plugin.lifecycle.event.registrar.ReloadableRegistrarEvent.Cause.INITIAL : io.papermc.paper.plugin.lifecycle.event.registrar.ReloadableRegistrarEvent.Cause.RELOAD);
+                    // Paper end - call commands event
                     return SimpleReloadInstance.create(
                             resourceManager,
                             reloadableServerResources.listeners(),
