I had a very small loss of entropy from this (pseudocode):
uint32 buckets = some constant
uint64_t entropy = hash_combine(to_int<8>(point.hash), point.index)
uint32 bucket = ((uint32)entropy) % buckets
which should have been this
uint32 buckets = some constant
uint64_t entropy = hash_combine(to_int<8>(point.hash), point.index)
uint32 bucket = (uint32)(entropy % buckets)
(edited)