Yes, doable without code, but not with a multiple select text box. You'll have to create a control on your own consisting of a repeating section or table and checkboxes, etc. Use the count function to get the number of active selections and add a validation rule that fires if they hit the max and then change the formatting of the checkboxes to not allow more. This will require adding separate conditional formatting to the checkbox in the repeating control that you end up building for your multi-select text box. The filtering to display the correct values will be kind of tricky, but definitely doable. Send me email if you need help. This would probably take up to an hour of support to walk you through it.