diff --git a/mappings/net/minecraft/client/model/BabyModelPair.mapping b/mappings/net/minecraft/client/model/BabyModelPair.mapping
new file mode 100644
index 0000000000..47bb30a72a
--- /dev/null
+++ b/mappings/net/minecraft/client/model/BabyModelPair.mapping
@@ -0,0 +1,3 @@
+CLASS net/minecraft/class_10602 net/minecraft/client/model/BabyModelPair
+	METHOD method_66533 get (Z)Lnet/minecraft/class_3879;
+		ARG 1 baby
diff --git a/mappings/net/minecraft/client/render/entity/PigEntityRenderer.mapping b/mappings/net/minecraft/client/render/entity/PigEntityRenderer.mapping
index 32de19b9d7..96c827c049 100644
--- a/mappings/net/minecraft/client/render/entity/PigEntityRenderer.mapping
+++ b/mappings/net/minecraft/client/render/entity/PigEntityRenderer.mapping
@@ -1 +1,4 @@
 CLASS net/minecraft/class_932 net/minecraft/client/render/entity/PigEntityRenderer
+	FIELD field_55874 modelPairs Ljava/util/Map;
+	METHOD method_66541 createModelPairs (Lnet/minecraft/class_5617$class_5618;)Ljava/util/Map;
+		ARG 0 context
diff --git a/mappings/net/minecraft/client/render/entity/model/ColdPigEntityModel.mapping b/mappings/net/minecraft/client/render/entity/model/ColdPigEntityModel.mapping
new file mode 100644
index 0000000000..ced51d9114
--- /dev/null
+++ b/mappings/net/minecraft/client/render/entity/model/ColdPigEntityModel.mapping
@@ -0,0 +1,3 @@
+CLASS net/minecraft/class_10603 net/minecraft/client/render/entity/model/ColdPigEntityModel
+	METHOD method_66534 getTexturedModelData (Lnet/minecraft/class_5605;)Lnet/minecraft/class_5607;
+		ARG 0 dilation
diff --git a/mappings/net/minecraft/client/render/entity/model/PigEntityModel.mapping b/mappings/net/minecraft/client/render/entity/model/PigEntityModel.mapping
index 62b8ac5d6d..30ed9591ec 100644
--- a/mappings/net/minecraft/client/render/entity/model/PigEntityModel.mapping
+++ b/mappings/net/minecraft/client/render/entity/model/PigEntityModel.mapping
@@ -3,3 +3,7 @@ CLASS net/minecraft/class_587 net/minecraft/client/render/entity/model/PigEntity
 	FIELD field_52925 BABY_TRANSFORMER Lnet/minecraft/class_9953;
 	METHOD method_32025 getTexturedModelData (Lnet/minecraft/class_5605;)Lnet/minecraft/class_5607;
 		ARG 0 dilation
+	METHOD method_66535 (Lnet/minecraft/class_5605;)Lnet/minecraft/class_5607;
+		ARG 0 dilation
+	METHOD method_66536 getModelData (Lnet/minecraft/class_5605;)Lnet/minecraft/class_5609;
+		ARG 0 dilation
diff --git a/mappings/net/minecraft/client/render/entity/state/PigEntityRenderState.mapping b/mappings/net/minecraft/client/render/entity/state/PigEntityRenderState.mapping
index 7abe976705..f216cd88fb 100644
--- a/mappings/net/minecraft/client/render/entity/state/PigEntityRenderState.mapping
+++ b/mappings/net/minecraft/client/render/entity/state/PigEntityRenderState.mapping
@@ -1,2 +1,3 @@
 CLASS net/minecraft/class_10053 net/minecraft/client/render/entity/state/PigEntityRenderState
 	FIELD field_53515 saddled Z
+	FIELD field_55877 variant Lnet/minecraft/class_10586;
diff --git a/mappings/net/minecraft/entity/data/TrackedDataHandlerRegistry.mapping b/mappings/net/minecraft/entity/data/TrackedDataHandlerRegistry.mapping
index 0ced1e2058..0455d5b830 100644
--- a/mappings/net/minecraft/entity/data/TrackedDataHandlerRegistry.mapping
+++ b/mappings/net/minecraft/entity/data/TrackedDataHandlerRegistry.mapping
@@ -32,6 +32,7 @@ CLASS net/minecraft/class_2943 net/minecraft/entity/data/TrackedDataHandlerRegis
 	FIELD field_48266 OPTIONAL_INT_CODEC Lnet/minecraft/class_9139;
 	FIELD field_49713 WOLF_VARIANT Lnet/minecraft/class_2941;
 	FIELD field_49774 PARTICLE_LIST Lnet/minecraft/class_2941;
+	FIELD field_55583 PIG_VARIANT Lnet/minecraft/class_2941;
 	METHOD method_12719 getId (Lnet/minecraft/class_2941;)I
 		ARG 0 handler
 	METHOD method_12720 register (Lnet/minecraft/class_2941;)V
diff --git a/mappings/net/minecraft/entity/passive/AnimalTemperature.mapping b/mappings/net/minecraft/entity/passive/AnimalTemperature.mapping
new file mode 100644
index 0000000000..97a62e3077
--- /dev/null
+++ b/mappings/net/minecraft/entity/passive/AnimalTemperature.mapping
@@ -0,0 +1,7 @@
+CLASS net/minecraft/class_10589 net/minecraft/entity/passive/AnimalTemperature
+	COMMENT Represents temperatures associated with {@linkplain net.minecraft.entity.passive.PigVariant pig}
+	COMMENT and {@linkplain net.minecraft.entity.passive.FrogVariant frog} variants.
+	FIELD field_55703 name Ljava/lang/String;
+	METHOD <init> (Ljava/lang/String;ILjava/lang/String;)V
+		ARG 3 name
+	METHOD method_66321 getName ()Ljava/lang/String;
diff --git a/mappings/net/minecraft/entity/passive/PigEntity.mapping b/mappings/net/minecraft/entity/passive/PigEntity.mapping
index 21ce76c16e..360a8e97c4 100644
--- a/mappings/net/minecraft/entity/passive/PigEntity.mapping
+++ b/mappings/net/minecraft/entity/passive/PigEntity.mapping
@@ -1,5 +1,6 @@
 CLASS net/minecraft/class_1452 net/minecraft/entity/passive/PigEntity
 	FIELD field_23230 saddledComponent Lnet/minecraft/class_4980;
+	FIELD field_55679 VARIANT Lnet/minecraft/class_2940;
 	FIELD field_6815 BOOST_TIME Lnet/minecraft/class_2940;
 	FIELD field_6816 SADDLED Lnet/minecraft/class_2940;
 	METHOD method_26890 createPigAttributes ()Lnet/minecraft/class_5132$class_5133;
diff --git a/mappings/net/minecraft/entity/passive/PigVariant.mapping b/mappings/net/minecraft/entity/passive/PigVariant.mapping
new file mode 100644
index 0000000000..743f4fa589
--- /dev/null
+++ b/mappings/net/minecraft/entity/passive/PigVariant.mapping
@@ -0,0 +1,47 @@
+CLASS net/minecraft/class_10586 net/minecraft/entity/passive/PigVariant
+	FIELD field_55680 CODEC Lcom/mojang/serialization/Codec;
+	FIELD field_55681 PACKET_CODEC Lnet/minecraft/class_9139;
+	FIELD field_55682 ENTRY_CODEC Lcom/mojang/serialization/Codec;
+	FIELD field_55683 ENTRY_PACKET_CODEC Lnet/minecraft/class_9139;
+	FIELD field_55684 model Lnet/minecraft/class_10586$class_10587;
+	FIELD field_55685 id Lnet/minecraft/class_2960;
+	FIELD field_55686 textureId Lnet/minecraft/class_2960;
+	FIELD field_55687 biomes Ljava/util/Optional;
+	METHOD <init> (Lnet/minecraft/class_10586$class_10587;Lnet/minecraft/class_2960;Ljava/util/Optional;)V
+		ARG 1 model
+		ARG 2 id
+		ARG 3 biomes
+	METHOD equals (Ljava/lang/Object;)Z
+		ARG 1 o
+	METHOD method_66300 getModel ()Lnet/minecraft/class_10586$class_10587;
+	METHOD method_66301 (Lnet/minecraft/class_10586;)Ljava/util/Optional;
+		ARG 0 variant
+	METHOD method_66302 (Lcom/mojang/serialization/codecs/RecordCodecBuilder$Instance;)Lcom/mojang/datafixers/kinds/App;
+		ARG 0 instance
+	METHOD method_66303 (Ljava/lang/String;)Ljava/lang/String;
+		ARG 0 path
+	METHOD method_66304 getTextureId ()Lnet/minecraft/class_2960;
+	METHOD method_66305 (Lnet/minecraft/class_10586;)Lnet/minecraft/class_2960;
+		ARG 0 variant
+	METHOD method_66306 getBiomes ()Ljava/util/Optional;
+	METHOD method_66307 (Lnet/minecraft/class_10586;)Lnet/minecraft/class_10586$class_10587;
+		ARG 0 variant
+	METHOD method_66308 (Lnet/minecraft/class_10586;)Ljava/util/Optional;
+		ARG 0 variant
+	METHOD method_66309 (Lnet/minecraft/class_10586;)Lnet/minecraft/class_2960;
+		ARG 0 variant
+	METHOD method_66310 (Lnet/minecraft/class_10586;)Lnet/minecraft/class_10586$class_10587;
+		ARG 0 variant
+	CLASS class_10587 Model
+		FIELD field_55690 CODEC Lcom/mojang/serialization/Codec;
+		FIELD field_55691 PACKET_CODEC Lnet/minecraft/class_9139;
+		FIELD field_55692 BY_ID Ljava/util/function/IntFunction;
+		FIELD field_55693 id I
+		FIELD field_55694 name Ljava/lang/String;
+		METHOD <init> (Ljava/lang/String;IILjava/lang/String;)V
+			ARG 3 id
+			ARG 4 name
+		METHOD method_66312 (Lnet/minecraft/class_10586$class_10587;)I
+			ARG 0 model
+		METHOD method_66313 (Lnet/minecraft/class_10586$class_10587;)I
+			ARG 0 model
diff --git a/mappings/net/minecraft/entity/passive/PigVariants.mapping b/mappings/net/minecraft/entity/passive/PigVariants.mapping
new file mode 100644
index 0000000000..4e10deec93
--- /dev/null
+++ b/mappings/net/minecraft/entity/passive/PigVariants.mapping
@@ -0,0 +1,29 @@
+CLASS net/minecraft/class_10588 net/minecraft/entity/passive/PigVariants
+	FIELD field_55696 TEMPERATE Lnet/minecraft/class_5321;
+	FIELD field_55697 WARM Lnet/minecraft/class_5321;
+	FIELD field_55698 COLD Lnet/minecraft/class_5321;
+	FIELD field_55699 DEFAULT Lnet/minecraft/class_5321;
+	METHOD method_66314 fromBiome (Lnet/minecraft/class_5819;Lnet/minecraft/class_5455;Lnet/minecraft/class_6880;)Ljava/util/Optional;
+		ARG 0 random
+		ARG 1 registries
+		ARG 2 biomes
+	METHOD method_66315 of (Ljava/lang/String;)Lnet/minecraft/class_5321;
+		ARG 0 path
+	METHOD method_66316 (Lnet/minecraft/class_6880$class_6883;)Z
+		ARG 0 variant
+	METHOD method_66317 (Lnet/minecraft/class_6880;Lnet/minecraft/class_6880$class_6883;)Z
+		ARG 1 variant
+	METHOD method_66318 bootstrap (Lnet/minecraft/class_7891;)V
+		ARG 0 registry
+	METHOD method_66319 register (Lnet/minecraft/class_7891;Lnet/minecraft/class_5321;Lnet/minecraft/class_10586$class_10587;Ljava/lang/String;Lnet/minecraft/class_6862;)V
+		ARG 0 registry
+		ARG 1 key
+		ARG 2 model
+		ARG 3 textureName
+		ARG 4 biomes
+	METHOD method_66320 register (Lnet/minecraft/class_7891;Lnet/minecraft/class_5321;Lnet/minecraft/class_10586$class_10587;Ljava/lang/String;Ljava/util/Optional;)V
+		ARG 0 registry
+		ARG 1 key
+		ARG 2 model
+		ARG 3 textureName
+		ARG 4 biomes