I didn't realize, but the only node that is special cased is the 'root' node, and to read it, you actually have to parse it directly, because the compressed bytes start immediately after the end of the header, rather than having any padding before the zlib bytes.