diff --git a/Spigot-Server-Patches/Limit-item-frame-cursors-on-maps.patch b/Spigot-Server-Patches/Limit-item-frame-cursors-on-maps.patch
new file mode 100644
index 0000000000..e8ca03f8f2
--- /dev/null
+++ b/Spigot-Server-Patches/Limit-item-frame-cursors-on-maps.patch
@@ -0,0 +1,37 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Yive <admin@yive.me>
+Date: Wed, 26 May 2021 15:09:33 -0700
+Subject: [PATCH] Limit item frame cursors on maps
+
+
+diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -0,0 +0,0 @@ public class PaperWorldConfig {
+     private void allowUsingSignsInsideSpawnProtection() {
+         allowUsingSignsInsideSpawnProtection = getBoolean("allow-using-signs-inside-spawn-protection", allowUsingSignsInsideSpawnProtection);
+     }
++
++    public int mapItemFrameCursorLimit = 128;
++    private void mapItemFrameCursorLimit() {
++        mapItemFrameCursorLimit = getInt("map-item-frame-cursor-limit", mapItemFrameCursorLimit);
++    }
+ }
+diff --git a/src/main/java/net/minecraft/world/level/saveddata/maps/WorldMap.java b/src/main/java/net/minecraft/world/level/saveddata/maps/WorldMap.java
+index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
+--- a/src/main/java/net/minecraft/world/level/saveddata/maps/WorldMap.java
++++ b/src/main/java/net/minecraft/world/level/saveddata/maps/WorldMap.java
+@@ -0,0 +0,0 @@ public class WorldMap extends PersistentBase {
+ 
+             WorldMapFrame worldmapframe1 = new WorldMapFrame(blockposition, entityitemframe.getDirection().get2DRotationValue() * 90, entityitemframe.getId());
+ 
++            // Paper start
++            if (this.decorations.size() < entityhuman.world.paperConfig.mapItemFrameCursorLimit) {
+             this.a(MapIcon.Type.FRAME, entityhuman.world, "frame-" + entityitemframe.getId(), (double) blockposition.getX(), (double) blockposition.getZ(), (double) (entityitemframe.getDirection().get2DRotationValue() * 90), (IChatBaseComponent) null);
+             this.n.put(worldmapframe1.e(), worldmapframe1);
++            }
++            // Paper end
+         }
+ 
+         NBTTagCompound nbttagcompound = itemstack.getTag();