Maximum x-, y-, or z-dimension of a grid of thread blocks = 65535 [CC 1.0 - 2.x]

Maximum width and height for a 2D texture reference bound to linear memory or to a CUDA array = 65536 x 32768 [CC 1.0 - 1.3], 65536 x 65535 [CC 2.x]

I have no Idea how this is implemented in Hardware but i am just curious why those values are 65535 instead of 65536 ?, especially the 2nd one, where it the height at [CC 1.0 - 1.3] is a power of 2 and for Compute Capability it is not ?

I know from older Programming Guides, a few values were changed from 66535 to 65536!