Just for the fun of it, I tried using the CPU chip I built, using all the other lower-level chips I built down to the basic gates - rather than using the builtin variants.
That works pretty well - except for the RAM chips. Loading the Memory chip from all the basic gates down to the Bit chip does not really work: I was never able to actually load the whole chip, even after extending java's heap space.
But using my own versions of RAM16K works well, as well as using my version of RAM4K. Anything below that makes Memory much too slow to load and to emulate, so I let the simulator use the builtin variants for those.
I tried running some of the examples on this CPU, and the simple ones (Rect.hack) work well, with not too much of a slowdown.
That does show that the base hardware simulator is quite powerful. Good job.