The p return value from Bitmap.FromUnsafeBytes is incorrect and untested.
I experimented with using it to read consecutive packed bitmaps for the BSI implementation but it resulted in different p values than ReadFrom. I took a quick look at the tests and it wasn't checked in the unit tests when the feature was added.
@damnever