After several days of trying to figure out precisely why my data structure included stuff I certainly didn't think I was having the program push into it, I gave up and now I'm shifting the extra bits off. Things work, although I'm sure those parts I cut off will be things I wish I had figured out someday.