One caveat to all of this is that the assumption that you can fit 128 items into a directory block is just wrong. You can fit 128 inodes into a single 4K data block but a directory entry is not an inode. A directory entry consists of the name of the file and a pointer to the inode. The number of directory entries that you can fit into a single 4K directory block is dependant on the length of the filenames you create.
Yeah, so like I even confused myself in the email I just sent out before I got this one. Exactly how many directory entries you get depends on how much data it takes up, which depends on the length of the file names. But, no matter what, you can't get more than 128 because every entry is a pointer to an inode. Except maybe for special files?
Bruce