As per my understanding `ReservedXcmpWeight` seems to be more of a cap in how much weight one block will be able to be filled by XCMP message execution than anything else. Meaning that if no messages need to be served/executed for block X, then all that available block space is there to be filled by other executions. Notice that there is a similar set up for DMP messages. I would recommend reading [`service_xcmp_queue`](https://github.com/paritytech/cumulus/blob/fb3837dcc9732ab8912eff51da9c86001d16206b/pallets/xcmp-queue/src/lib.rs#L796) documentation for some more insight on, and I quote: > Service the incoming XCMP message queue attempting to execute up to `max_weight` execution weight of messages