@eniko I like the sound of that a lot I think. Interesting that you encode keys and strings differently, I guess that helps when inspecting the file manually; you can reset your mental parser at every "K<string>".
How do you encode keys/strings? Are they 0 terminated?