Sorted it out in my head now. For anyone else who has similar comprehension issues here is the .binvox file format explained:
- Header goes first and must contain
- Version number
- Dimensions of voxel grid
- Translation and scale factors to go from model coordinates to unit cube.
- The word "data" before the actual data begins
An example header would be:
#binvox 1
dim 512 512 512
translate 0 0 0
scale 1
data
Then the rest of the file after this is composed of pairs of bytes giving the voxel value (1 for presence and 0 for absence) and the count of voxels (e.g. this byte would be 2 if there was a run of 2 coordinates with the same value). There are no separators between byte pairs. The order of these byte pairs is determined by running through your model coordinates; with y changing fastest, then z, then x.
Now I understand it, I can see that the documentation is actually already good and all I have done here is summarised it. Actual documentation can be found here.