Frankly, designing a save format around POS6^H^H^H^HVB6 is a terrible idea in the first place. BSON is fine, works nice, and is well documented, so I don't see what the big deal is.
EDIT:
Wait, VB6 is common among hobbyist programmers?
EDIT: Sorry for multiple images, my adblocker had blocked two of them so I didn't know I had spammed three. If anyone ever sees me post multiples of the same image feel free to get rid of the extras.
There are two main reasons to continue using the current save format instead of this one: extensibility, and compressed filesize.
BSON is used so that it's easy to extend the save format with new fields. Likewise with particle data - field descriptors specifying which properties were saved make it easy to save new ones. We are not going to switch back to a format based on specific byte positions having specific meanings.
Specific byte positions having specific meanings was basically what PSv was. It eventually becomes horrible to maintain, as new properties are added over time and more things need to be saved (TPT has to be able to read saves from all versions, from the first version that ever had saving, all the way to the current version. That adds up to a lot of messy code if the layout of save data is dependent on version.).
Storing full float values makes the data compress very poorly, and is in general unnecessary. Integers, or fixed-point numbers if decimal places are needed, are usually sufficient.
Sorry, but I'm not particularly bothered about VB6 compatibility, and I doubt the other developers are. If you really need to use VB6, maybe you could write a converter in C or C++ that reads OPS saves and outputs whatever you think is easiest to read in VB6?
BSON libraries exist for a variety of popular languages, so I would imagine that most other people wanting to write a save parser will have a BSON library available.
As for how the save format might actually be improved: I think the main thing is the mapping of bits in the field descriptor to how many bytes of each property are saved, which evolved over time so is a bit convoluted and likely not optimal. Also worth trying might be storing each particle property in a separate array, as this might group identical values together better and provide better compression.
But not as easily as the current format. As I said, we tried that sort of thing with the old PSv save format and it's a lot less pleasant to maintain.
I don't know of a BSON parser for VB6, and there isn't one listed on the BSON website. And as I said in http://tpt.io/.258510, I believe boxmein is writing some documentation for those arrays.