--- a/net/minecraft/loot/LootTableManager.java
+++ b/net/minecraft/loot/LootTableManager.java
@@ -36,8 +36,8 @@
       }
 
       p_212853_1_.forEach((p_237403_1_, p_237403_2_) -> {
-         try {
-            LootTable loottable = field_186526_b.fromJson(p_237403_2_, LootTable.class);
+         try (net.minecraft.resources.IResource res = p_212853_2_.func_199002_a(getPreparedPath(p_237403_1_));){
+            LootTable loottable = net.minecraftforge.common.ForgeHooks.loadLootTable(field_186526_b, p_237403_1_, p_237403_2_, res == null || !res.func_199026_d().equals("Default"), this);
             builder.put(p_237403_1_, loottable);
          } catch (Exception exception) {
             field_186525_a.error("Couldn't parse loot table {}", p_237403_1_, exception);
