diff --git a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
index c807633f6..fed5acbc2 100644
--- a/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
+++ b/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
@@ -171,8 +171,7 @@ implements ImageObserver, TileLoaderListener, ZoomChangeListener, FilterChangeLi
      * Offset between calculated zoom level and zoom level used to download and show tiles. Negative values will result in
      * lower resolution of imagery useful in "retina" displays, positive values will result in higher resolution
      */
-    public static final IntegerProperty ZOOM_OFFSET = new IntegerProperty(PREFERENCE_PREFIX + ".zoom_offset",
-            PlatformManager.getPlatform().isHighDpiDisplay() ? 2 : 0);
+    public static final IntegerProperty ZOOM_OFFSET = new IntegerProperty(PREFERENCE_PREFIX + ".zoom_offset", 0);
 
     /*
      *  use MemoryTileCache instead of tileLoader JCS cache, as tileLoader caches only content (byte[] of image)
diff --git a/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java b/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
index 0303dd6e6..7e355edc0 100644
--- a/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
+++ b/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
@@ -4,6 +4,7 @@ package org.openstreetmap.josm.gui.layer.imagery;
 import java.awt.Polygon;
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
 import java.util.Objects;
@@ -182,7 +183,8 @@ public class TileCoordinateConverter {
             t1 = tileSource.projectedToTileXY(CoordinateConversion.enToProj(topLeftEN), zoom);
             t2 = tileSource.projectedToTileXY(CoordinateConversion.enToProj(botRightEN), zoom);
         }
-        int screenPixels = mapView.getWidth()*mapView.getHeight();
+        AffineTransform transform = mapView.getGraphicsConfiguration().getDefaultTransform();
+        int screenPixels = (int) (mapView.getWidth()*mapView.getHeight()*transform.getScaleX()*transform.getScaleY());
         double tilePixels = Math.abs((t2.getY()-t1.getY())*(t2.getX()-t1.getX())*tileSource.getTileSize()*tileSource.getTileSize());
         if (screenPixels == 0 || tilePixels == 0) return 1;
         return screenPixels/tilePixels;
diff --git a/src/org/openstreetmap/josm/tools/PlatformHook.java b/src/org/openstreetmap/josm/tools/PlatformHook.java
index abd99e213..19cffad3a 100644
--- a/src/org/openstreetmap/josm/tools/PlatformHook.java
+++ b/src/org/openstreetmap/josm/tools/PlatformHook.java
@@ -136,18 +136,6 @@ public interface PlatformHook {
                 GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().isFullScreenSupported();
     }
 
-    /**
-     * Determines if the default screen is a high-dpi device such as a mac Retina display.
-     * @return {@code true} if the default screen is a high-dpi device such as a mac Retina display
-     * @since 15918
-     */
-    default boolean isHighDpiDisplay() {
-        // https://stackoverflow.com/a/49770313
-        return !GraphicsEnvironment.isHeadless() &&
-                !GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice().getDefaultConfiguration()
-                .getDefaultTransform().isIdentity();
-    }
-
     /**
      * Renames a file.
      * @param from Source file
