// the find
maplibre/maplibre-tile-spec
Next generation map vector tiles format
MapLibre Tile (MLT) is a next-generation vector tile format designed to replace Mapbox Vector Tiles (MVT). It uses a column-oriented layout with SIMD-friendly encodings, targeting planet-scale map rendering on modern GPU APIs. The audience is map platform engineers and geospatial infrastructure teams — not app developers consuming tiles.
Column-oriented storage with recursive lightweight encodings (RLE, FSST, FastPFor, zigzag, Morton/Hilbert curve ordering) gives the claimed 6x compression over MVT on large tiles — this is backed by a peer-reviewed SIGSPATIAL paper, not just marketing. Native support for M-values and 3D coordinates means it can ingest Overture Maps (GeoParquet) without lossy downconversion, which MVT can't do cleanly. Implementations exist in Java, Rust, C++, TypeScript, and Python with CI for each — this isn't a spec-only project. The spec was declared stable in October 2025 and the repo was pushed yesterday, so it's actively maintained.
The column-oriented strictness is a real migration pain: properties must have a single type per layer, missing values become typed nulls, and feature reordering is allowed by the encoder — any code that depends on MVT's per-feature tag flexibility will break silently. There's no MapLibre GL JS integration yet (the implementation-status page shows it as in-progress), so you can't actually render MLT in a browser today without writing your own decoder integration. The Java encoder is the reference implementation and the most complete, but if you're in Rust or C++ you're working with decoders only — encoding from those runtimes isn't there yet. The spec's 'living standard' carve-out for experimental features means you can't fully trust stability for anything beyond the core MVT-compatible subset.