I think the smallest allowed entry size should be a constant, something like 128. True, in the worst case it can lead to a lot of 128 bytes-sized unusable entries, but so can this approach, if the user allocates just one 128 bytes (or smaller) entry.