We currently use MaxTxs to reap txs from the mempool when proposing a block, but enforce MaxBytes when unmarshalling a block, so we could easily propose a block thats too large to be valid.
We should probably just remove MaxTxs all together and stick with MaxBytes, and have a mempool.ReapBytes