Upstream merge.

Mikeprimm's lighter nibble arrays have been removed since they have been incorporate d upstream.