block_collapse handles inverse, transpose.

Also uses bottom_up instead of top_down