I could never work out
exactly what "compare" stood for, but my best bet was that it dealt with the number of entries in the partition's cluster index table. Cluster based corruption is caused by having too many, but the larger the things are the less you need to fill the drive.
Nevertheless I'm pretty sure the code is already correct in terms of the initial starting value I have there. But according to your statements, you find that the cluster size does not change from 16kb to 32kb when you cross the 256gb mark - I find that a little problematic to rationalise, considering that it worked fine in my tests, and people with larger drives then I own have confirmed it correctly jumps to 64kb clusters when you break the 512gb mark.
Can you confirm that XBP 1.1 uses the incorrect cluster size for
all partition combinations with your drive? If so, provide some details on your BIOS, drive make, and console version.
If it only stuffs up when crossing the 1TB mark then I reckon there's gotta be an overflow in there somewhere, but I'm not sure where... Heck, I don't even know how many bytes a ULONG takes up these days. Is it still four? Hope so, should be an easy fix if that's the case.
Mind you, I still recommend a split partition setup. To my mind 128kb per cluster is wasteful to the extreme. A 32kb and 64kb cluster split would be vastly more efficient.
There's also the possibility even if XBP does decide that 128kb is the cluster size it's gonna format with,
that doesn't mean 128kb clusters will work. You won't know for sure until you get 1tb of data on there.
Furthermore, another guy with a 1.5tb drive had trouble after the format was done (even though he went with a split setup). Though maybe I should get him to take a look at this, perhaps it'll offer some insight on his case as well.