Using small numbers to represent bigger numbers, is the right way to go. Once you get close to the max number your system can generate, you need to "create" your own, smaller int's, that *represent*, huge numbers.
In a project I ran two years ago, I used this same approach, and it works very well, even going up into 10^24th range. No reason why it couldn't be extended much higher. Note that no big number library is needed to do this, just understand that the digits in a number, represent a power of 10, and use that.
BTW, there is a distrubuted computing project working on this conjecture, currently with 1,104 teams (not all are active though). You can see the first 100 top teams, here:
http://boincstats.com/stats/team_sta...=collatzc&st=0