I used the cursor-based objsLeftInBatch method to test the aggregation result type and the 16MB limitation no longer applies to the overall result. The cursor inner results are regular BSON documents, hence, they are still limited to 16MB, but this is way more manageable than the previous overall result limit.