The block-group layout you're parsing here is the direct ancestor of ext3 and ext4 — the default filesystem on most Linux servers — which still uses the same superblock magic number (0xEF53) and inode-table structure. Getting the block-size-to-log_block_size formula wrong (1024 << log_block_size) means every subsequent offset calculation reads garbage instead of real metadata.