--- a/net/minecraft/world/item/crafting/AbstractCookingRecipe.java
+++ b/net/minecraft/world/item/crafting/AbstractCookingRecipe.java
@@ -6,7 +6,7 @@
 import net.minecraft.world.item.ItemStack;
 import net.minecraft.world.level.Level;
 
-public abstract class AbstractCookingRecipe implements Recipe<Container> {
+public abstract class AbstractCookingRecipe extends io.papermc.paper.inventory.recipe.RecipeBookExactChoiceRecipe<Container> implements Recipe<Container> { // Paper - improve exact recipe choices
     protected final RecipeType<?> type;
     protected final CookingBookCategory category;
     protected final String group;
@@ -23,6 +23,7 @@
         this.result = result;
         this.experience = experience;
         this.cookingTime = cookingTime;
+        this.checkExactIngredients(); // Paper - improve exact recipe choices
     }
 
     @Override
