--- a/net/minecraft/resources/RegistryDataLoader.java
+++ b/net/minecraft/resources/RegistryDataLoader.java
@@ -57,6 +57,11 @@
         RegistryOps.RegistryInfoLookup registryInfoLookup = createContext(baseRegistryManager, list);
         list.forEach((loader) -> {
             loader.getSecond().load(resourceManager, registryInfoLookup);
+            // Paper start
+            if (loader.getFirst().key() == Registries.CHAT_TYPE) {
+                Registry.register((Registry<ChatType>) loader.getFirst(), ChatType.RAW, new ChatType(new net.minecraft.network.chat.ChatTypeDecoration("%s", List.of(net.minecraft.network.chat.ChatTypeDecoration.Parameter.CONTENT), net.minecraft.network.chat.Style.EMPTY), new net.minecraft.network.chat.ChatTypeDecoration("%s", List.of(net.minecraft.network.chat.ChatTypeDecoration.Parameter.CONTENT), net.minecraft.network.chat.Style.EMPTY))); // CraftBukkit
+            }
+            // Paper end
         });
         list.forEach((loader) -> {
             Registry<?> registry = loader.getFirst();
@@ -87,7 +92,7 @@
         return new RegistryOps.RegistryInfoLookup() {
             @Override
             public <T> Optional<RegistryOps.RegistryInfo<T>> lookup(ResourceKey<? extends Registry<? extends T>> registryRef) {
-                return Optional.ofNullable(map.get(registryRef));
+                return Optional.ofNullable((RegistryOps.RegistryInfo<T>) map.get(registryRef)); // Paper - decompile fix
             }
         };
     }
