As for naming; I'd personally prefer to have 'heap' included in the names here (e.g. heaptid_blkno(tid) or heap_blkno[_of](tid)), because not all AMs may map tid.blkno exactly to a block number in the main fork.
All our docs and code mention blocks and offsets as the components of a tid, so -1 on making things more obtuse.