So there is an approach which can be taken for these big chunks, which I came up with yesterday.
Put them into .openbsd.mutable section. At program startup they will be RW, so Immediately mprotect) PROT_EXEC|PROT_READ, and if you feel like it use mimmutable() also, which they would have been if started a different way. Make sure the object is page aligned, or you'll cut yourself.