I'd advocate that you make a bus factor [1] spreadsheet.
In the first column list every feature of your system - row by row - with a fairly identifiable description. List the current owner of the code supporting each feature next to the description
Then create columns with each engineers name on it. Then ask each engineer to color code each cell in their column based on their ability to support the feature.
Green - Understand the code and could support 24/7 pager duty on it
Yellow - Could probably grok the code after a month and then start supporting 24/7 pager duty on it
Red - Won't ever support that part of the code cuz its a mess
The presumption is that each engineer will be marking green for their features - so they will get 1 point. If an engineer signs up for another persons feature, they get 2 points for marking it green, 1 point for marking it yellow and 0 points for marking it red.
Tally up the points in each column and let the engineers compare themselves. Ideally each row will have at least 2 cells marked in green. Such a spreadsheet will definitely help guide the engineers to write more supportable code as if they don't it will be apparent that their rows are visibly red. It also gives the engineers a reason/reward for delving into Other People's Projects/code (I like to call it OPP).
Share the spreadsheet with the product management teams and engineering management - particularly as they are proposing new features as it can help show that their fancy new feature requests of the month are generating a high amount of bus factor.
[1] https://en.wikipedia.org/wiki/Bus_factor