--- a/net/minecraft/item/crafting/CookingRecipeSerializer.java
+++ b/net/minecraft/item/crafting/CookingRecipeSerializer.java
@@ -8,7 +8,7 @@
 import net.minecraft.util.ResourceLocation;
 import net.minecraft.util.registry.Registry;
 
-public class CookingRecipeSerializer<T extends AbstractCookingRecipe> implements IRecipeSerializer<T> {
+public class CookingRecipeSerializer<T extends AbstractCookingRecipe> extends net.minecraftforge.registries.ForgeRegistryEntry<IRecipeSerializer<?>> implements IRecipeSerializer<T> {
    private final int field_222178_t;
    private final CookingRecipeSerializer.IFactory<T> field_222179_u;
 
@@ -21,11 +21,17 @@
       String s = JSONUtils.func_151219_a(p_199425_2_, "group", "");
       JsonElement jsonelement = (JsonElement)(JSONUtils.func_151202_d(p_199425_2_, "ingredient") ? JSONUtils.func_151214_t(p_199425_2_, "ingredient") : JSONUtils.func_152754_s(p_199425_2_, "ingredient"));
       Ingredient ingredient = Ingredient.func_199802_a(jsonelement);
+      //Forge: Check if primitive string to keep vanilla or a object which can contain a count field.
+      if (!p_199425_2_.has("result")) throw new com.google.gson.JsonSyntaxException("Missing result, expected to find a string or object");
+      ItemStack itemstack;
+      if (p_199425_2_.get("result").isJsonObject()) itemstack = ShapedRecipe.func_199798_a(JSONUtils.func_152754_s(p_199425_2_, "result"));
+      else {
       String s1 = JSONUtils.func_151200_h(p_199425_2_, "result");
       ResourceLocation resourcelocation = new ResourceLocation(s1);
-      ItemStack itemstack = new ItemStack(Registry.field_212630_s.func_241873_b(resourcelocation).orElseThrow(() -> {
+      itemstack = new ItemStack(Registry.field_212630_s.func_241873_b(resourcelocation).orElseThrow(() -> {
          return new IllegalStateException("Item: " + s1 + " does not exist");
       }));
+      }
       float f = JSONUtils.func_151221_a(p_199425_2_, "experience", 0.0F);
       int i = JSONUtils.func_151208_a(p_199425_2_, "cookingtime", this.field_222178_t);
       return this.field_222179_u.create(p_199425_1_, s, ingredient, itemstack, f, i);
