UTM работает в JOSM в последних svn версиях
если поправить EPSG коды


Index: src/org/openstreetmap/josm/data/projection/UTM.java
===================================================================
--- src/org/openstreetmap/josm/data/projection/UTM.java    (revision 2679)
+++ src/org/openstreetmap/josm/data/projection/UTM.java    (working copy)
@@ -340,11 +340,11 @@
 
     public EastNorth latlon2eastNorth(LatLon p) {
         EastNorth a = MapLatLonToXY(Math.toRadians(p.lat()), Math.toRadians(p.lon()), UTMCentralMeridian(getzone()));
-        return new EastNorth(a.east() * UTMScaleFactor + 3500000.0, a.north() * UTMScaleFactor);
+        return new EastNorth(a.east() * UTMScaleFactor + 500000.0, a.north() * UTMScaleFactor);
     }
 
     public LatLon eastNorth2latlon(EastNorth p) {
-        return MapXYToLatLon((p.east()-3500000.0)/UTMScaleFactor, p.north()/UTMScaleFactor, UTMCentralMeridian(getzone()));
+        return MapXYToLatLon((p.east()-500000.0)/UTMScaleFactor, p.north()/UTMScaleFactor, UTMCentralMeridian(getzone()));
     }
 
     @Override public String toString() {
@@ -357,7 +357,7 @@
     }
 
     public String toCode() {
-        return "EPSG:"+ (325800 + getzone());
+        return "EPSG:"+ (32600 + getzone());
     }
 
     @Override
@@ -366,7 +366,7 @@
     }
 
     public String getCacheDirectoryName() {
-        return "epsg"+ (325800 + getzone());
+        return "epsg"+ (32600 + getzone());
     }
 
     public Bounds getWorldBoundsLatLon()
@@ -423,7 +423,7 @@
 
     public Collection<String> getPreferencesFromCode(String code)
     {
-        if(code.startsWith("EPSG:3258"))
+        if(code.startsWith("EPSG:326"))
         {
             try {
                 String zonestring = code.substring(9);