diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
new file mode 100644
index 0000000000..2be0538b92
--- /dev/null
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -0,0 +1,625 @@
+{
+  "id": "mapcomplete-changes",
+  "title": {
+    "en": "Changes made with MapComplete"
+  },
+  "shortDescription": {
+    "en": "Shows changes made by MapComplete"
+  },
+  "description": {
+    "en": "This maps shows all the changes made with MapComplete"
+  },
+  "icon": "./assets/svg/logo.svg",
+  "hideFromOverview": true,
+  "startLat": 0,
+  "startLon": 0,
+  "startZoom": 1,
+  "widenFactor": 0.05,
+  "clustering": false,
+  "layers": [
+    {
+      "id": "mapcomplete-changes",
+      "name": {
+        "en": "Changeset centers"
+      },
+      "minzoom": 0,
+      "source": {
+        "osmTags": "editor~*",
+        "geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete-data/main/mapcomplete-changes/tile_{z}_{x}_{y}.geojson",
+        "geoJsonZoomLevel": 8,
+        "maxCacheAge": 0
+      },
+      "title": {
+        "render": {
+          "en": "Changeset for {theme}"
+        }
+      },
+      "description": {
+        "en": "Shows all MapComplete changes"
+      },
+      "tagRenderings": [
+        {
+          "id": "show_changeset_id",
+          "render": {
+            "en": "Changeset {id}"
+          }
+        },
+        {
+          "id": "contributor",
+          "question": {
+            "en": "What contributor did make this change?"
+          },
+          "freeform": {
+            "key": "user"
+          },
+          "render": {
+            "en": "Change made by {user}"
+          }
+        },
+        {
+          "id": "theme-id",
+          "question": {
+            "en": "What theme was used to make this change?"
+          },
+          "freeform": {
+            "key": "theme"
+          },
+          "render": {
+            "en": "Change with theme {theme}"
+          }
+        },
+        {
+          "id": "locale",
+          "freeform": {
+            "key": "locale"
+          },
+          "question": {
+            "en": "What locale (language) was this change made in?"
+          },
+          "render": {
+            "en": "User locale is {locale}"
+          }
+        },
+        {
+          "id": "host",
+          "render": {
+            "en": "Change with with {host}"
+          },
+          "question": {
+            "en": "What host (website) was this change made with?"
+          },
+          "freeform": {
+            "key": "host"
+          },
+          "mappings": [
+            {
+              "if": "host=www.waldbrand-app.de",
+              "then": "waldbrand-app.de",
+              "hideInAnswer": true
+            },
+            {
+              "if": "host~https://pietervdvn.github.io/mc/develop/.*",
+              "then": "Develop",
+              "hideInAnswer": true
+            }
+          ]
+        },
+        {
+          "id": "version",
+          "question": {
+            "en": "What version of MapComplete was used to make this change?"
+          },
+          "render": {
+            "en": "Made with {editor}"
+          },
+          "freeform": {
+            "key": "editor"
+          }
+        }
+      ],
+      "pointRendering": [
+        {
+          "location": [
+            "point",
+            "centroid"
+          ],
+          "marker": [
+            {
+              "icon": {
+                "render": "teardrop:#00cc00",
+                "mappings": [
+                  {
+                    "if": "theme=advertising",
+                    "then": "./assets/themes/advertising/icon.svg"
+                  },
+                  {
+                    "if": "theme=aed",
+                    "then": "./assets/themes/aed/aed.svg"
+                  },
+                  {
+                    "if": "theme=artwork",
+                    "then": "./assets/themes/artwork/artwork.svg"
+                  },
+                  {
+                    "if": "theme=atm",
+                    "then": "./assets/themes/atm/logo.svg"
+                  },
+                  {
+                    "if": "theme=bag",
+                    "then": "./assets/themes/bag/logo.svg"
+                  },
+                  {
+                    "if": "theme=benches",
+                    "then": "./assets/themes/benches/bench_poi.svg"
+                  },
+                  {
+                    "if": "theme=bicycle_rental",
+                    "then": "./assets/themes/bicycle_rental/logo.svg"
+                  },
+                  {
+                    "if": "theme=bicyclelib",
+                    "then": "./assets/themes/bicyclelib/logo.svg"
+                  },
+                  {
+                    "if": "theme=binoculars",
+                    "then": "./assets/layers/binocular/telescope.svg"
+                  },
+                  {
+                    "if": "theme=blind_osm",
+                    "then": "./assets/themes/blind_osm/Blindicon.svg"
+                  },
+                  {
+                    "if": "theme=bookcases",
+                    "then": "./assets/themes/bookcases/bookcase.svg"
+                  },
+                  {
+                    "if": "theme=buurtnatuur",
+                    "then": "./assets/themes/buurtnatuur/logo.svg"
+                  },
+                  {
+                    "if": "theme=cafes_and_pubs",
+                    "then": "./assets/layers/cafe_pub/pub.svg"
+                  },
+                  {
+                    "if": "theme=campersite",
+                    "then": "./assets/themes/campersite/caravan.svg"
+                  },
+                  {
+                    "if": "theme=charging_stations",
+                    "then": "./assets/themes/charging_stations/logo.svg"
+                  },
+                  {
+                    "if": "theme=climbing",
+                    "then": "./assets/themes/climbing/climbing_icon.svg"
+                  },
+                  {
+                    "if": "theme=clock",
+                    "then": "./assets/layers/clock/clock.svg"
+                  },
+                  {
+                    "if": "theme=cycle_highways",
+                    "then": "./assets/themes/cycle_highways/fietssnelwegen-logo.svg"
+                  },
+                  {
+                    "if": "theme=cycle_infra",
+                    "then": "./assets/themes/cycle_infra/cycle-infra.svg"
+                  },
+                  {
+                    "if": "theme=cyclenodes",
+                    "then": "./assets/themes/cyclenodes/logo.svg"
+                  },
+                  {
+                    "if": "theme=cyclestreets",
+                    "then": "./assets/themes/cyclestreets/logo.svg"
+                  },
+                  {
+                    "if": "theme=cyclofix",
+                    "then": "./assets/themes/cyclofix/logo.svg"
+                  },
+                  {
+                    "if": "theme=drinking_water",
+                    "then": "./assets/themes/drinking_water/logo.svg"
+                  },
+                  {
+                    "if": "theme=education",
+                    "then": "./assets/layers/school/college.svg"
+                  },
+                  {
+                    "if": "theme=elongated_coin",
+                    "then": "./assets/themes/elongated_coin/penny.svg"
+                  },
+                  {
+                    "if": "theme=etymology",
+                    "then": "./assets/layers/etymology/logo.svg"
+                  },
+                  {
+                    "if": "theme=facadegardens",
+                    "then": "./assets/themes/facadegardens/geveltuin.svg"
+                  },
+                  {
+                    "if": "theme=food",
+                    "then": "./assets/layers/food/restaurant.svg"
+                  },
+                  {
+                    "if": "theme=fritures",
+                    "then": "./assets/themes/fritures/logo.svg"
+                  },
+                  {
+                    "if": "theme=fruit_trees",
+                    "then": "./assets/themes/fruit_trees/fruit_tree.svg"
+                  },
+                  {
+                    "if": "theme=ghostbikes",
+                    "then": "./assets/themes/ghostbikes/logo.svg"
+                  },
+                  {
+                    "if": "theme=grb",
+                    "then": "./assets/themes/grb/logo.svg"
+                  },
+                  {
+                    "if": "theme=grb_fixme",
+                    "then": "./assets/svg/bug.svg"
+                  },
+                  {
+                    "if": "theme=guideposts",
+                    "then": "./assets/layers/guidepost/guidepost.svg"
+                  },
+                  {
+                    "if": "theme=hackerspaces",
+                    "then": "./assets/themes/hackerspaces/glider.svg"
+                  },
+                  {
+                    "if": "theme=hailhydrant",
+                    "then": "./assets/themes/hailhydrant/logo.svg"
+                  },
+                  {
+                    "if": "theme=healthcare",
+                    "then": "./assets/layers/doctors/doctors.svg"
+                  },
+                  {
+                    "if": "theme=hotels",
+                    "then": "./assets/layers/hotel/hotel.svg"
+                  },
+                  {
+                    "if": "theme=icecream",
+                    "then": "./assets/layers/ice_cream/ice_cream.svg"
+                  },
+                  {
+                    "if": "theme=indoors",
+                    "then": "./assets/layers/entrance/entrance.svg"
+                  },
+                  {
+                    "if": "theme=kerbs_and_crossings",
+                    "then": "./assets/layers/kerbs/KerbIcon.svg"
+                  },
+                  {
+                    "if": "theme=maproulette",
+                    "then": "./assets/layers/maproulette/logomark.svg"
+                  },
+                  {
+                    "if": "theme=maps",
+                    "then": "./assets/themes/maps/logo.svg"
+                  },
+                  {
+                    "if": "theme=maxspeed",
+                    "then": "./assets/themes/maxspeed/maxspeed_logo.svg"
+                  },
+                  {
+                    "if": "theme=nature",
+                    "then": "./assets/themes/nature/logo.svg"
+                  },
+                  {
+                    "if": "theme=notes",
+                    "then": "./assets/themes/notes/logo.svg"
+                  },
+                  {
+                    "if": "theme=observation_towers",
+                    "then": "./assets/layers/observation_tower/Tower_observation.svg"
+                  },
+                  {
+                    "if": "theme=onwheels",
+                    "then": "./assets/themes/onwheels/crest.svg"
+                  },
+                  {
+                    "if": "theme=openwindpowermap",
+                    "then": "./assets/themes/openwindpowermap/logo.svg"
+                  },
+                  {
+                    "if": "theme=osm_community_index",
+                    "then": "./assets/themes/osm_community_index/osm.svg"
+                  },
+                  {
+                    "if": "theme=parkings",
+                    "then": "./assets/themes/parkings/parkings.svg"
+                  },
+                  {
+                    "if": "theme=personal",
+                    "then": "./assets/svg/addSmall.svg"
+                  },
+                  {
+                    "if": "theme=pets",
+                    "then": "./assets/layers/dogpark/dog-park.svg"
+                  },
+                  {
+                    "if": "theme=play_forests",
+                    "then": "./assets/layers/play_forest/icon.svg"
+                  },
+                  {
+                    "if": "theme=playgrounds",
+                    "then": "./assets/themes/playgrounds/playground.svg"
+                  },
+                  {
+                    "if": "theme=postal_codes",
+                    "then": "./assets/themes/postal_codes/townhall.svg"
+                  },
+                  {
+                    "if": "theme=postboxes",
+                    "then": "./assets/layers/postboxes/postbox.svg"
+                  },
+                  {
+                    "if": "theme=rainbow_crossings",
+                    "then": "./assets/themes/rainbow_crossings/logo.svg"
+                  },
+                  {
+                    "if": "theme=shops",
+                    "then": "./assets/themes/shops/shop.svg"
+                  },
+                  {
+                    "if": "theme=sidewalks",
+                    "then": "./assets/svg/bug.svg"
+                  },
+                  {
+                    "if": "theme=speelplekken",
+                    "then": "./assets/themes/speelplekken/logo.svg"
+                  },
+                  {
+                    "if": "theme=sport_pitches",
+                    "then": "./assets/layers/sport_pitch/table_tennis.svg"
+                  },
+                  {
+                    "if": "theme=sports",
+                    "then": "./assets/themes/sports/sport.svg"
+                  },
+                  {
+                    "if": "theme=stations",
+                    "then": "./assets/themes/stations/rail-light.svg"
+                  },
+                  {
+                    "if": "theme=street_lighting",
+                    "then": "./assets/layers/street_lamps/street_lamp.svg"
+                  },
+                  {
+                    "if": "theme=street_lighting_assen",
+                    "then": "./assets/layers/street_lamps/street_lamp.svg"
+                  },
+                  {
+                    "if": "theme=surveillance",
+                    "then": "./assets/themes/surveillance/logo.svg"
+                  },
+                  {
+                    "if": "theme=toerisme_vlaanderen",
+                    "then": "./assets/themes/toerisme_vlaanderen/logo.svg"
+                  },
+                  {
+                    "if": "theme=toilets",
+                    "then": "./assets/themes/toilets/toilets.svg"
+                  },
+                  {
+                    "if": "theme=transit",
+                    "then": "./assets/layers/transit_stops/bus_stop.svg"
+                  },
+                  {
+                    "if": "theme=trees",
+                    "then": "./assets/themes/trees/logo.svg"
+                  },
+                  {
+                    "if": "theme=uk_addresses",
+                    "then": "./assets/themes/uk_addresses/housenumber_unknown.svg"
+                  },
+                  {
+                    "if": "theme=vending_machine",
+                    "then": "./assets/layers/vending_machine/vending_machine.svg"
+                  },
+                  {
+                    "if": "theme=walkingnodes",
+                    "then": "./assets/themes/walkingnodes/logo.svg"
+                  },
+                  {
+                    "if": "theme=walls_and_buildings",
+                    "then": "./assets/layers/walls_and_buildings/walls_and_buildings.png"
+                  },
+                  {
+                    "if": "theme=waste",
+                    "then": "./assets/layers/recycling/recycling-14.svg"
+                  },
+                  {
+                    "if": "theme=waste_assen",
+                    "then": "./assets/layers/recycling/recycling-14.svg"
+                  },
+                  {
+                    "if": "theme=waste_basket",
+                    "then": "./assets/themes/waste_basket/waste_basket.svg"
+                  },
+                  {
+                    "if": "theme=width",
+                    "then": "./assets/themes/width/icon.svg"
+                  }
+                ]
+              }
+            }
+          ],
+          "iconSize": "30,30",
+          "anchor": "center"
+        }
+      ],
+      "filter": [
+        {
+          "id": "theme-search",
+          "options": [
+            {
+              "osmTags": "theme~i~.*{search}.*",
+              "fields": [
+                {
+                  "name": "search"
+                }
+              ],
+              "question": {
+                "en": "Themename contains {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "created_by",
+          "options": [
+            {
+              "osmTags": "user~i~.*{search}.*",
+              "fields": [
+                {
+                  "name": "search"
+                }
+              ],
+              "question": {
+                "en": "Made by contributor {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "not_created_by",
+          "options": [
+            {
+              "osmTags": "user!~i~.*{search}.*",
+              "fields": [
+                {
+                  "name": "search"
+                }
+              ],
+              "question": {
+                "en": "Not made by contributor {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "made_before",
+          "options": [
+            {
+              "osmTags": "date<{search}",
+              "fields": [
+                {
+                  "name": "search",
+                  "type": "date"
+                }
+              ],
+              "question": {
+                "en": "Made before {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "made_after",
+          "options": [
+            {
+              "osmTags": "date>{search}",
+              "fields": [
+                {
+                  "name": "search",
+                  "type": "date"
+                }
+              ],
+              "question": {
+                "en": "Made after {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "locale-filter",
+          "options": [
+            {
+              "osmTags": "locale~i~.*{search}.*",
+              "fields": [
+                {
+                  "name": "search"
+                }
+              ],
+              "question": {
+                "en": "User language (iso-code) {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "host_name",
+          "options": [
+            {
+              "osmTags": "host~i~.*{search}.*",
+              "fields": [
+                {
+                  "name": "search"
+                }
+              ],
+              "question": {
+                "en": "Made with host {search}"
+              }
+            }
+          ]
+        },
+        {
+          "id": "added-image",
+          "options": [
+            {
+              "osmTags": "add-image>0",
+              "question": {
+                "en": "Changeset added at least one image"
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "builtin": "current_view",
+      "override": {
+        "title": "Statistics on changesets in the current view",
+        "tagRenderings+": [
+          {
+            "id": "link_to_more",
+            "render": {
+              "en": "More statistics can be found here"
+            }
+          },
+          {
+            "id": "hist_themes",
+            "render": "{histogram(_embedded_cs:themes, Themename, Number of changesets)}"
+          },
+          {
+            "id": "hist_users",
+            "render": "{histogram(_embedded_cs:users, Contributor, Number of changesets)}"
+          }
+        ],
+        "calculatedTags": [
+          "_embedded_cs=overlapWith(feat)('mapcomplete-changes').map(f => f.feat.properties)",
+          "_embedded_cs:themes=feat.get('_embedded_cs').map(cs => cs.theme)",
+          "_embedded_cs:users=feat.get('_embedded_cs').map(cs => cs['_last_edit:contributor'])"
+        ],
+        "+pointRendering": [
+          {
+            "location": [
+              "point"
+            ],
+            "marker": [
+              {
+                "icon": "statistics:black"
+              }
+            ],
+            "iconSize": "30,30",
+            "anchor": "center"
+          }
+        ]
+      }
+    }
+  ]
+}
\ No newline at end of file
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json
index 81e929aa97..d82eb30430 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.proto.json
@@ -123,9 +123,13 @@
             "point",
             "centroid"
           ],
-          "icon": {
-            "render": "teardrop:#00cc00"
-          },
+          "marker": [
+            {
+              "icon": {
+                "render": "teardrop:#00cc00"
+              }
+            }
+          ],
           "iconSize": "30,30",
           "anchor": "center"
         }
diff --git a/assets/themes/stations/stations.json b/assets/themes/stations/stations.json
index 9ca1c8f2a9..8a219926c8 100644
--- a/assets/themes/stations/stations.json
+++ b/assets/themes/stations/stations.json
@@ -31,16 +31,7 @@
       "override": {
         "minzoom": 18,
         "passAllFeatures": true,
-        "mapRendering": [
-          {},
-          {},
-          {
-            "label": {
-              "render": null,
-              "mappings": null
-            },
-            "iconSize": "0,0"
-          }
+        "=pointRendering": [
         ]
       }
     },
@@ -55,7 +46,8 @@
       "override": {
         "title": null,
         "name": null,
-        "mapRendering": null
+        "pointRendering": null,
+        "lineRendering": "null"
       }
     },
     {
@@ -125,9 +117,17 @@
         },
         "presets": null,
         "minzoom": 18,
-        "mapRendering": [
+        "pointRendering": [
           {
-            "icon": "circle:white;./assets/themes/stations/bicycle_parking.svg"
+            "marker": [
+              {
+                "icon": "circle",
+                "color": "white"
+              },
+              {
+                "icon": "./assets/themes/stations/bicycle_parking.svg"
+              }
+            ]
           }
         ]
       }
@@ -143,9 +143,17 @@
         },
         "presets": null,
         "minzoom": 18,
-        "mapRendering": [
+        "pointRendering": [
           {
-            "icon": "circle:white;./assets/themes/stations/rental_bicycle.svg"
+            "marker": [
+              {
+                "icon": "circle",
+                "color": "white"
+              },
+              {
+                "icon": "./assets/themes/stations/rental_bicycle.svg"
+              }
+            ]
           }
         ]
       }
@@ -177,7 +185,7 @@
         },
         "presets": null,
         "minzoom": 18,
-        "mapRendering+": [
+        "lineRendering+": [
           {
             "color": "#00f",
             "width": "8"
@@ -196,7 +204,7 @@
         },
         "presets": null,
         "minzoom": 18,
-        "mapRendering+": [
+        "lineRendering+": [
           {
             "color": "yellow",
             "width": "8"
@@ -223,9 +231,13 @@
       "builtin": "bench",
       "override": {
         "minzoom": 18,
-        "mapRendering": [
+        "lineRendering": [
           {
-            "icon": "./assets/themes/stations/bench.svg"
+            "marker": [
+              {
+                "icon": "./assets/themes/stations/bench.svg"
+              }
+            ]
           }
         ]
       }
@@ -234,9 +246,17 @@
       "builtin": "drinking_water",
       "override": {
         "minzoom": 18,
-        "mapRendering": [
+        "pointRendering": [
           {
-            "icon": "circle:white;./assets/themes/stations/drinking_water.svg"
+            "=marker": [
+              {
+                "icon": "circle",
+                "color": "white"
+              },
+              {
+                "icon": "./assets/themes/stations/drinking_water.svg"
+              }
+            ]
           }
         ]
       }
diff --git a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
index f94ea61d9d..c28f8b61b2 100644
--- a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
+++ b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
@@ -164,7 +164,7 @@
               "point",
               "centroid"
             ],
-            "=marker": [
+            "marker": [
               {
                 "icon": {
                   "render": "./assets/themes/toerisme_vlaanderen/cycle_pump.svg",
diff --git a/scripts/generateLayerOverview.ts b/scripts/generateLayerOverview.ts
index 438e0f1e0d..32f06ee64a 100644
--- a/scripts/generateLayerOverview.ts
+++ b/scripts/generateLayerOverview.ts
@@ -27,8 +27,6 @@ import { ExtraFunctions } from "../src/Logic/ExtraFunctions"
 import { QuestionableTagRenderingConfigJson } from "../src/Models/ThemeConfig/Json/QuestionableTagRenderingConfigJson"
 import LayerConfig from "../src/Models/ThemeConfig/LayerConfig"
 import PointRenderingConfig from "../src/Models/ThemeConfig/PointRenderingConfig"
-
-import { ConfigMeta } from "../src/UI/Studio/configMeta"
 import { ConversionContext } from "../src/Models/ThemeConfig/Conversion/ConversionContext"
 
 // This scripts scans 'src/assets/layers/*.json' for layer definition files and 'src/assets/themes/*.json' for theme definition files.
@@ -397,9 +395,10 @@ class LayerOverviewUtils extends Script {
 
         const mcChangesPath = "./assets/themes/mapcomplete-changes/mapcomplete-changes.json"
         if (
-            recompiledThemes.length > 0 &&
-            !(recompiledThemes.length === 1 && recompiledThemes[0] === "mapcomplete-changes") &&
-            (args.indexOf("--generate-change-map") >= 0 || !existsSync(mcChangesPath))
+            (recompiledThemes.length > 0 &&
+                !(recompiledThemes.length === 1 && recompiledThemes[0] === "mapcomplete-changes") &&
+                args.indexOf("--generate-change-map") >= 0) ||
+            !existsSync(mcChangesPath)
         ) {
             // mapcomplete-changes shows an icon for each corresponding mapcomplete-theme
             const iconsPerTheme = Array.from(sharedThemes.values()).map((th) => ({