While working on the design of the board for the 100-pin package I've found that if I'll follow approach taken for Mini64 - provide as much MCU pins available on the headers as possible - then I need a lot of additional pins (comparing to Mini64). This is not a problem in general, but if preserving compatibility with breadboard is a goal, then there are not so many options:
a) Extend outer rows to 32 pins each and inner rows to 16 pins each. This provides 2 x 32 + 2 x 16 = 98 pins which is more than enough for the 100 pin package (16 pins in package are used by GND/power/main crystal/etc. and are don't need to be broken out).
Pros: rather simple to implement and provides enough room for further extension (I think that it has enough pins even for 144-pin package).
Cons: not every breadboard can accept 32-pins; board will be rather big (at least ~85mm long).
b) Use double pin headers for outer rows. This provides 2 x 2 x 20 + 2 x 8 = 96pins. Still more than enough for 100-pin package.
Pros: still simple for implementation, board will be rather compact
Cons: might not be breadboard compatible (at least not with every breadboard);
c) Use something like Maple Native approach, i.e. two side rows and header with multiple rows at top. This approach allows to provide as many pins as necessary in addition to 40 pins in two side rows.
Pros: breadboard compatible, rational use of PCB space
Cons: preparing layout might be complicated if there will be more than 2 rows in top header
d) Do not try to provide all MCU pins at headers. Instead provide as many as practical at side rows and provide dedicated connectors for SPI, USART, I2C at top.
Pros: obviously, not all pins are available for use, using alternative functions for pins will be inconvenient
Cons: simple use of dedicated interfaces
I'd like to discuss this issue with community, and try to prepare board which will be convenient for as many use cases as possible. So, comments, ideas and suggestions are welcome.