From Quake Wiki
When the Remakequake project's maps started exceeding the original Quake BSP map limits again and again they started drafting a new flavour of the BSP29 map file format with extended limits. The goal was to make as few changes as possible. No new features were introduced. It was called BSP2. Internally it is also known as BSP29a.
The finalised BSP2 format uses the magic number BSP2 and has the following limits: TODO, why are those numbers nowhere to be found :(
First RMQ releases used an early version for their maps with the magic number 2PSB and still had node BBox sizes being short. This file format is supported by the respective RMQ engine releases, DirectQ, FTEQW and Darkplaces. The 2PSB format is deprecated.
Engines with BSP2 support
- Fitzquake Mark V (since release 14)
- Quakespasm (from 0.90.0)
- TyrQuake (since late 2013)
- Xash3D (versions with "Quake Wrap".)
Compilers with BSP2 support
- hmap2 uses BSP2 automatically if needed
- as do QuakeForge's tools
- tyrann's utils have a -bsp2 switch
- rebb's Jury-Rigged BJP Tools
- ericw-tools qbsp has the -bsp2 argument to alow compiling in the BSP2 format
Adding support to your engine/toolchain
You can check out the sources of the engines and tools mentioned above. For example looking at model_brush.c in Darkplaces and searching for isbsp2 will reveal all the differences between the 3 formats (normal, isbsp2, isbsp2rmqe being the 2PSB code).
The following use the deprecated 2PSB format, please do not use them as final reference! Of course the differences between BSP2 and 2PSB are rather tiny so you can still use them as a guideline.
- MH's BSP2 for Engine Coders.txt which you can find in the BSP2Tools directory in [].
- RMQ's TxQBSP2, WVisBSP2 and LightBSP2 from the same zip.