Index: trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 16616)
+++ trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java	(revision 16619)
@@ -128,5 +128,4 @@
 import org.openstreetmap.josm.tools.MemoryManager.MemoryHandle;
 import org.openstreetmap.josm.tools.MemoryManager.NotEnoughMemoryException;
-import org.openstreetmap.josm.tools.PlatformManager;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.bugreport.BugReport;
@@ -173,6 +172,5 @@
      * 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);
 
     private static final BooleanProperty POPUP_MENU_ENABLED = new BooleanProperty(PREFERENCE_PREFIX + ".popupmenu", true);
Index: trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java	(revision 16616)
+++ trunk/src/org/openstreetmap/josm/gui/layer/imagery/TileCoordinateConverter.java	(revision 16619)
@@ -5,4 +5,5 @@
 import java.awt.Rectangle;
 import java.awt.Shape;
+import java.awt.geom.AffineTransform;
 import java.awt.geom.Point2D;
 import java.awt.geom.Rectangle2D;
@@ -183,5 +184,6 @@
             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;
Index: trunk/src/org/openstreetmap/josm/tools/PlatformHook.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 16616)
+++ trunk/src/org/openstreetmap/josm/tools/PlatformHook.java	(revision 16619)
@@ -138,16 +138,4 @@
 
     /**
-     * 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
