sorry, I read a lot of theory once; I appreciate that yours is the practical approach

of course if the pointers are broken, because they all resided in the indexes [excuse if that is sloppy terminology], you cannot tell which blocks belong together [or in what order] other than by 'trial and error'