We are making amazing progress toward stabilizing the 3D Tiles spec and Cesium implementation.
As part of this progress, there is a small breaking change coming to the .b3dm tile format with pull requests #4183 (Cesium) and #125 (3D Tiles spec). The good news is that this may very well be the last breaking change!
The b3dm header is now 6 fields and 24-bytes (previously, it was 5 fields and 20 bytes). The new header is
magic, version, byteLength, batchTableJSONByteLength, batchTableBinaryByteLength, batchLength
as shown in this diagram. The old header was
magic, version, byteLength, batchLength, batchTableByteLength
as shown in the old diagram.
There is currently backwards compatibility for loading the old .b3dm format, but it will be removed ultimately when the 3d-tiles branch is merged into master.
Also, as part of these pull requests, there is now a binary section in the Batch Table so you can efficiently store numeric values instead of embedding them in a large JSON array.