To clarify, this works by the client deterministically reconstructing the tree once they have the whole file, then checking the root's hash, correct?
Each leaf is the hash of a 16KB chunk. On the next layer up you have a series of nodes which are the hashes of the two leafs below it hashed together.
You add enough layers until you get a single root hash at the root of the tree.