@Override
    void load(DataInput datainput, int depth) {
        if (depth > 512) {
            throw new RuntimeException("Tried to read NBT tag with too high complexity, depth > 512");
        } else {
            this.VALUES.clear();

            byte b;

            while ((b = asByte(datainput)) != 0) {
                String s = asString(datainput);
                NBTBase nbtbase = readTag(b, s, datainput, depth + 1);

                this.VALUES.put(s, nbtbase);
            }
        }
    }