Status: 2026-09-22. The builder reads exclusively the installed DLC-3 index and writes only to re_probes/tnc_custom_map_c3v1_custom. The running Steam installation was not modified.
Result
An alias project game/dlc/c03/c3v1_custom with its own dlcid: 4 and chunkid: 26 in base/packagemapspec.json was generated. The inventory from the real chunk_24.resources comprises 360 name-based assets, of which 220 are map-critical assets:
cm 90, compfile 3, extkisclule 90, file 4, hknavmesh 1,
image 85, json 1, material 3, model 30, modelAsset 25,
modelstream 25, pvs 1, staticShadowGeom 1, staticStreamTree 1
The full mapping c3v1 -> c3v1_custom is located in asset_inventory.json. The builder is reproducible: tools/build_tnc_custom_map_prototype.py.
Negative Checks / Blockers
The prototype is intentionally not runnable. chunk_26.resources and chunk_26.texdb are missing on purpose; furthermore, internal references in Entities, Proc/Prockd, World-Tome, Collision, Navmesh, PVS, and Shadow were not rewritten. There is also no new Save-/Menu-registration. A start would therefore not constitute a valid Custom Map test.
bundle_status.json documents these checks. This specifically refutes the claim that a new Mapspec or a .entities file alone generates a new Map. The next real technical step is an isolated Chunk-/Texdb-rebuild with consistent Asset-Index and rewritten Cross-References; until then, the alias remains an Inventory-/Format prototype.
IDCL Analysis and Candidate Rebuild
The builder additionally generates base/chunk_26.resources.candidate (33.3 MB) as an isolated IDCL-v12 candidate. It contains all 360 selected c3v1 entries, preserves the original compressions (98× stored, 261× Kraken, 1× Kraken-Blocks), Offsets, Resource-Hashes, and Version fields, and writes only the string table to c3v1_custom. Its own parser reads the candidate with 360 entries again; there are no Dependencies in this DLC part.
This is a structural rebuild, not a claimed runtime success. The candidate header adopts +0x08 from Retail because its calculation is still unknown; +0x20 is correctly calculated as a FarmHash via the metadata. Furthermore, binary/internal path and asset references in Proc, World Tome, Collision, Navmesh, PVS, Shadow, and Entities remain unchanged. The 32-Byte Texdb file and Loader-/Save-registration are also not yet validated. Therefore, the candidate is neither mounted nor copied into the Steam installation.
The implementation lies in tools/build_tnc_custom_map_prototype.py. It has a hard output limit outside the game path and generates no file in the TNC directory. A successful parser roundtrip is thus documented; a runnable c3v1_custom remains open until the solution of +0x08, Texdb, and the Cross-References.