I had some difficulty during the building of the Adders, and then again during the building of the CPU itself, with the Endianness of the architecture.
My problem was that the endianness was never explicitly declared. Once I figured out I was thinking backwards, I was able to work it out, but it caused a pile of pain during the CPU building.
I've helped multiple people to understand that the bits are numbered 0-15 starting with the LSB. People with some programming experience understand that arrays start with . They see in and think it refers to the first bit of the number on the bus, as written. If in = 0x1234, they think in[0..3] = 1 and in [12..15] = 4.
FWIW, I've worked with computers that have used all four numberings: 0..n-1, 1..n, starting with MSB or LSB. I even used a computer that had 8x6 rectangular words (Librascope 3055).