My decision to change the sprite code stuff into a sprite management class had a cascading effect. I went back to the sprite code and changed them to use the sprite management class. While doing so, I noticed that quite a lot of code depended on the sprite's size information. So I had to fix those as well. While fixing those, I realized that the camera wasn't as independent as I wanted, it depended on the sprite information as well!?!?! So I removed the code that depended on the sprites, and realized that I've been doing yet some other stuff wrong!
Long story short, I've decided to comment out most of my code for later review, and focus on galaxy drawing and camera manipulation. The cascade effect reached as far as the galaxy generation! I decided to remove the "special rule" I had for star system and grid cells. How it worked previously was that star systems and grid cells have two separate coordinate system. One star system grid cell is equal to 4x4 grid cells. If I say a star system is at 2,3, it actually means 8,12 in grid cell. This is why all the stars always line up, you don't see stars out of alignment.
So I changed the star system to base on the grid cell layout, this means the stars can be staggered. I'm currently in process of tweaking the circle algorithm to incorporate this change. It may take me a couple of weeks or more to get the game back to something like the latest released version, but I promise that it will be a lot better, more smooth, and more elegant.