Hello all! Same guy that posted about a Java Bitcoin Address Generator. I've completed my blockchain mockup and I couldn't be happier with it. Although it doesn't have persistent state and doesn't use new addresses as Change addresses (since the wallets are not HD, just single-keypair wallets), I learned a lot from doing this.
It really does help to understand the complexity of cryptocurrencies when you try to make it from scratch by yourself. There's a ton of security behind bitcoin, and some of it may seem absurd (SHA-256 hashing into RIPEMD-160 into 2x SHA-256 like Damn... all for a checksum).
If you want to mess around with the program, I've uploaded it to Github (Link here). It's a functioning wallet-type program that has Accounts you can switch between where each account has its own KeyPair that you can then send and receive funds to. There is a block reward for mining new blocks that is distributed from the "coinbase" wallet.
NOTE: This is intended to be for educational purposes and should in no way be considered a real cryptocurrency/blockchain. It only runs for the time you have it open and loses all information when closed. The addresses it generates ARE valid bitcoin addresses that you can use, but do so at your own risk and know what you're doing. There is no seed for the addresses that are generated.