i'm not sure it is inherently a bad idea. it's as messy as it is (and frankly it's not that bad), mainly because many important ipv4 things were designed before it, and the ipv6 people apparently thought they needn't even try, similar to the length field in 802.?