Couldn't you just mmap a binary final with the same in-memory structure rather than a text file?
You could do it with relative offsets if you wanted, that's getting pretty close to pre-heating a cache from a snapshot. That way the file would not contain pointers but you could still traverse it relatively quickly by adding the offsets to the base address of the whole file.
Base+offset segmentation does have an overhead since you'd need some extra CPU registers for that if I understand it correctly.