>(Thinking outloud... could you use a class to encapsulate the hash table so that it switched from using 16/32/64 bit integers - since you already have to update all the indexes when the table expands.)

NB: The current lookup join algorithm, either knows ahead of time the # rows, or broadcasts the rows, before building the HT, so it knows the total HT size it needs and never rehashes