diff --git a/Spigot-API-Patches/0264-added-Wither-API.patch b/Spigot-API-Patches/0264-added-Wither-API.patch
new file mode 100644
index 000000000..dbfc15a42
--- /dev/null
+++ b/Spigot-API-Patches/0264-added-Wither-API.patch
@@ -0,0 +1,45 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <jake.m.potrebic@gmail.com>
+Date: Sun, 5 Jul 2020 15:39:40 -0700
+Subject: [PATCH] added Wither API
+
+
+diff --git a/src/main/java/org/bukkit/entity/Wither.java b/src/main/java/org/bukkit/entity/Wither.java
+index 426d3693317cd303d35d8203026b528d87e401d5..8c95cd6933f11076de936854f379e6fc8600b525 100644
+--- a/src/main/java/org/bukkit/entity/Wither.java
++++ b/src/main/java/org/bukkit/entity/Wither.java
+@@ -6,4 +6,34 @@ import com.destroystokyo.paper.entity.RangedEntity;
+  * Represents a Wither boss
+  */
+ public interface Wither extends Monster, Boss, RangedEntity { // Paper
++    // Paper start
++    /**
++     * @return whether the wither is charged
++     */
++    boolean isCharged();
++
++    /**
++     * @return ticks the wither is invulnerable for
++     */
++    int getInvulnerableTicks();
++
++    /**
++     * Sets for how long in the future, the wither should be invulnerable.
++     *
++     * @param ticks ticks the wither is invulnerable for
++     */
++    void setInvulnerableTicks(int ticks);
++
++    /**
++     * @return whether the wither can travel through portals
++     */
++    boolean canTravelThroughPortals();
++
++    /**
++     * Sets whether the wither can travel through portals.
++     *
++     * @param value whether the wither can travel through portals
++     */
++    void setCanTravelThroughPortals(boolean value);
++    // Paper end
+ }
diff --git a/Spigot-Server-Patches/0658-added-Wither-API.patch b/Spigot-Server-Patches/0658-added-Wither-API.patch
new file mode 100644
index 000000000..d6fc933d8
--- /dev/null
+++ b/Spigot-Server-Patches/0658-added-Wither-API.patch
@@ -0,0 +1,75 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <jake.m.potrebic@gmail.com>
+Date: Sun, 5 Jul 2020 15:39:19 -0700
+Subject: [PATCH] added Wither API
+
+
+diff --git a/src/main/java/net/minecraft/server/EntityWither.java b/src/main/java/net/minecraft/server/EntityWither.java
+index 53482a420c356fd50e5ab6dd729a271d6594dac7..2e623ef9be036ea467e9e41817c2eced018f8f93 100644
+--- a/src/main/java/net/minecraft/server/EntityWither.java
++++ b/src/main/java/net/minecraft/server/EntityWither.java
+@@ -32,6 +32,11 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
+         return entityliving.getMonsterType() != EnumMonsterType.UNDEAD && entityliving.ei();
+     };
+     private static final PathfinderTargetCondition bz = (new PathfinderTargetCondition()).a(20.0D).a(EntityWither.by);
++    // Paper start
++    private boolean canPortal = false;
++
++    public void setCanTravelThroughPortals(boolean canPortal) { this.canPortal = canPortal; }
++    // Paper end
+ 
+     public EntityWither(EntityTypes<? extends EntityWither> entitytypes, World world) {
+         super(entitytypes, world);
+@@ -530,6 +535,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
+         this.datawatcher.set((DataWatcherObject) EntityWither.bo.get(i), j);
+     }
+ 
++    public final boolean isPowered() { return this.S_(); } // Paper - OBFHELPER
+     public boolean S_() {
+         return this.getHealth() <= this.getMaxHealth() / 2.0F;
+     }
+@@ -546,7 +552,7 @@ public class EntityWither extends EntityMonster implements IRangedEntity {
+ 
+     @Override
+     public boolean canPortal() {
+-        return false;
++        return canPortal; // Paper
+     }
+ 
+     @Override
+diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
+index 03cf6136e64bab7180933e106234b92c1255268d..8c75f6df9749246fbbad55dcdc4292bd3bab4e2b 100644
+--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
++++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftWither.java
+@@ -39,4 +39,31 @@ public class CraftWither extends CraftMonster implements Wither, CraftRangedEnti
+     public BossBar getBossBar() {
+         return bossBar;
+     }
++
++    // Paper start
++    @Override
++    public boolean isCharged() {
++        return getHandle().isPowered();
++    }
++
++    @Override
++    public int getInvulnerableTicks() {
++        return getHandle().getInvul();
++    }
++
++    @Override
++    public void setInvulnerableTicks(int ticks) {
++        getHandle().setInvul(ticks);
++    }
++
++    @Override
++    public boolean canTravelThroughPortals() {
++        return getHandle().canPortal();
++    }
++
++    @Override
++    public void setCanTravelThroughPortals(boolean value) {
++        getHandle().setCanTravelThroughPortals(value);
++    }
++    // Paper end
+ }