--- a/net/minecraft/world/level/storage/LevelData.java
+++ b/net/minecraft/world/level/storage/LevelData.java
@@ -71,5 +_,25 @@
         public BlockPos pos() {
             return this.globalPos.pos();
         }
+
+        // Paper start
+        public RespawnData withLevel(ResourceKey<Level> dimension) {
+            return new RespawnData(GlobalPos.of(dimension, this.pos()), this.yaw, this.pitch);
+        }
+
+        /**
+         * Equals without checking dimension.
+         *
+         * @param other other object
+         * @return true if position and rotation are equal
+         */
+        public boolean positionEquals(Object other) {
+            if (other == this) return true;
+            if (!(other instanceof LevelData.RespawnData otherRespawn)) return false;
+            return this.pos().equals(otherRespawn.pos())
+                && this.yaw == otherRespawn.yaw
+                && this.pitch == otherRespawn.pitch;
+        }
+        // Paper end
     }
 }
