I’ve been reading through the code and if I understand correctly the reason for the preface and base64 encoding is that is required to get the same hash that git is using internally for the block.
This is also one of the big roadblocks as the file can’t be sharded or the hash will change.